IE2017


Leleko Nikita

0
Рейтинг

Nikita Leleko
sigmov



  •   Регистрация: 13.09.2011 (5 лет назад)

  •   Был(а) на сайте: вчера в 16:38

Комментарии

DevОтчет-календарь СКД#1 07.06.17 5:06
Идея +
DevОптимизация запросов 1С:Предприятие – от теории к практике#15 10.10.16 8:52
1. Сначала было сказано про причины возникновения (ну 4ка)
2. Потом были разобраны несколько примеров (на 3ку) с выводом что все очень гибко и использовать нужно когда-так, а когда-не так
3. Ну и наконец "Покупайте наши помидоры"

Не гуд....
ВКRexV8#72 26.09.16 7:47
Приложение умирает при "ПодключитьВнешнююКомпоненту".
Только у меня?

Цитата
Сигнатура проблемы:
Имя события проблемы: BEX
Имя приложения: 1CV8C.exe
Версия приложения: 8.3.7.2008
Отметка времени приложения: 56f1d2b8
Имя модуля с ошибкой: StackHash_0a9e
Версия модуля с ошибкой: 0.0.0.0
DevПередача реквизитов объекта из основной формы в дополнительную и обратно на управляемых формах#17 23.09.16 9:59
(16) sigmov, Да, сам же протестировал - к сожалению элемент будет считаться "новым". (т.е. КопироватьДанныеФормы УИД не переносит)

Мое когда-то решение проблемы
Построено на РеквизитФормыВЗначение и его собратьях

На вызывающей форме:
Код
//{{ [+](фрагмент добавлен) <?"", ИмяПользователя> <?"", ДатаВремя, "ДФ='yyyy.MM.dd HH:mm:ss'">
#Область РедактированиеОбъектовВСтороннихФормах
// Шаблон редактирования объекта в подформе (автор: Лелеко)

// Вызывает редактирование открытых в данной форму объектов в сторонней форме
// Параметры:
//   ИмяФормы - строка - путь открываемой формы (по стандарту она должна иметь реквизит 'объект' объектного типа)
//  Реквизит - строка - имя реквизита передаваемого для редактирования
//   ПараметрыФормы - структура - параметры которые будут переданы в открываемую форму
//   ПараметрыОбратногоВызова - структура - параметры, которые получит "ОбработкаРезультатовРедактированияОбъектаВСтороннейФорме" в одноименный параметр
&НаКлиенте
Процедура ВызовРедактированияВСтороннейФорме(ИмяФормы, Реквизит = "Объект", ПараметрыФормы = Неопределено, ПараметрыОбратногоВызова = Неопределено)

   Если ПараметрыОбратногоВызова = Неопределено Тогда
      ПараметрыОбратногоВызова = Новый Структура;
   КонецЕсли; 
   ПараметрыОбратногоВызова.Вставить("Реквизит", Реквизит); // Добавляем информацию о редактируемом объекте(в каком реквизите он храниться) 
   
   ОповещениеОбратногоВызова = 
      Новый ОписаниеОповещения("ОбработкаРезультатовРедактированияОбъектаВСтороннейФорме", ЭтаФорма, ПараметрыОбратногоВызова);
      
   Если ПараметрыФормы = Неопределено Тогда
      ПараметрыФормы = Новый Структура;
   КонецЕсли;
   ПараметрыФормы.Вставить("Объект", Вычислить(Реквизит)); // добавляем передаваемый реквизит
   
   ОткрытьФорму( // открываем форму для редактирования (в модуль формы нужно внедрить корреспондирующий код)
      ИмяФормы,
       ПараметрыФормы,
      ЭтаФорма,,,,
      ОповещениеОбратногоВызова, 
      РежимОткрытияОкнаФормы.БлокироватьОкноВладельца
   );

КонецПроцедуры

// Обрабатывает результаты редактирования объектов в сторонних формах
// Параметры:
//   ОбъектРезультат - объект - отредактированный объект (ДанныеФормыСтруктура)
//   ПараметрыОбратногоВызова - структура - переданные при вызове параметры
Процедура ОбработкаРезультатовРедактированияОбъектаВСтороннейФорме(ОбъектРезультат, ПараметрыОбратногоВызова)
   
   Если ОбъектРезультат <> Неопределено Тогда
      // {{ Предобработка <вставьте свой код сюда>
      // }}
      ЗначениеВРеквизитФормы(
         ДанныеФормыВЗначение(
            ОбъектРезультат, 
            ТипЗнч(РеквизитФормыВЗначение(ПараметрыОбратногоВызова.Реквизит))),
         ПараметрыОбратногоВызова.Реквизит);
      // {{ Постобработка <вставьте свой код сюда>
      // }}
   КонецЕсли;
      
КонецПроцедуры

#КонецОбласти
//}} <?"", ИмяПользователя> <?"", ДатаВремя, "ДФ='yyyy.MM.dd HH:mm:ss'">
На принимающей форме:
Код
//{{ [+](фрагмент добавлен) <?"", ИмяПользователя> <?"", ДатаВремя, "ДФ='yyyy.MM.dd HH:mm:ss'">
#Область РедактированиеОбъектовВСтороннихФормах

// Событие создания на сервере (может вызвать ошибку компиляции модуля)
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   ПриСозданииНаСервереУстановкаОбъекта(Отказ, СтандартнаяОбработка);
КонецПроцедуры

// Устанавливаем объект при установке на сервере
// (нужно интегрировать в ПриСозданииНаСервере)
&НаСервере
Процедура ПриСозданииНаСервереУстановкаОбъекта(Отказ, СтандартнаяОбработка)
   Перем ПараметрОбъект;
   Если Параметры.Свойство("Объект", ПараметрОбъект) И ТипЗнч(ПараметрОбъект) = Тип("ДанныеФормыСтруктура") Тогда
      ЗначениеВДанныеФормы(
         ДанныеФормыВЗначение(
            Параметры.Объект, 
            ТипЗнч(РеквизитФормыВЗначение("Объект"))
         ), ЭтаФорма.Объект);            
   КонецЕсли; 
КонецПроцедуры

// Команда сохранения результатов исполнения
&НаКлиенте
Процедура Заполнить(Команда)
   Закрыть(ЭтаФорма.Объект);
КонецПроцедуры

#КонецОбласти
//}} <?"", ИмяПользователя> <?"", ДатаВремя, "ДФ='yyyy.MM.dd HH:mm:ss'">
DevПередача реквизитов объекта из основной формы в дополнительную и обратно на управляемых формах#16 23.09.16 9:51
А если записывать объект из дополнительной формы, то в базе будет перезаписан исходный объект, или будет создан новый как копия исходного?
DevКак отказаться от использования НайтиПоНаименованию() и НайтиПоКоду() в уже работающих наполненных базах при дальнейшей разработке.#151 29.08.16 11:02
Спасибо! Хорошая статья.
Встречал и более экзотические случаи а-ля
Код
Если ВРег(Лев(ПолучитьЗаголовокСистемы(), 6)) = "СИНТАН" Тогда ... 


Вот только регистр сведений на мой взгляд лишним является.
Потому как измерение регистра у вас всего одно, а периодичными значения не являются.
И желательно еще кешировать значения.
DevШаблон текста автозамены для 1C 8#5 02.11.15 12:06
36кб - не так уж много. У меня 2мб перевалило. Хотя я там давно не чистил
ВККроcсплатформенное динамическое выполнение кода .NET (C#) из 1С:Предприятие#8 30.10.15 19:20
Здравствуйте.
Можно вопросы:
1. Выражения, как понимаю компилируются?
1.1. Они компилируются с помощью DomCompiler'а или Emit'а?
2. Есть ли какая-нить возможность передавать параметры выполняемому выражению?
2.1. Если нет - то сделайте через JSON или XML а то вообще не серьезно - получается нужно все параметры конкатенировать в строку