Цитата: Djelf от 05 сентября 2025, 15:02Цитата: Злоп от 05 сентября 2025, 14:54Или сделать тупо простоТак должно сработать. Попробуй. А ограничения я уже написал выше.
В Приоткрытии() запоминаем содержимое документа, а формексом Послезакрытия() сравниваем с уже текущим состоянием документа.
...
?
Ну и лучше в json в таблику sqlite писать, или сериализировать туда тз или итз, а вот в длинные строки этот так себе вариант. Плохой вариант...
Цитата: Djelf от 05 сентября 2025, 15:02Знаю что плохой вариант.Цитата: Злоп от 05 сентября 2025, 14:54Или сделать тупо простоТак должно сработать. Попробуй. А ограничения я уже написал выше.
В Приоткрытии() запоминаем содержимое документа, а формексом Послезакрытия() сравниваем с уже текущим состоянием документа.
...
?
Ну и лучше в json в таблику sqlite писать, или сериализировать туда тз или итз, а вот в длинные строки этот так себе вариант. Плохой вариант...
Цитата: Djelf от 05 сентября 2025, 14:52ПриОткрытии не сработает при программной записи.
ПриЗаписи не перехватывается, на 1с++ это неоднократно обсуждали.
ПриПроведении работает стабильно, но надо получить данные до момента измения, а получить ты их не можешь.
Теоретически было бы довольно просто так сделать - ПриНачалеИзменения забираем первичный документ в ит или sqlite, затем ПослеОкончанияИзменения опять забираем, сравниваем, загоняем в json и его пишем в базу sqlite, что важно, иначе кирдык твой таблице длинных строк.
Но первоначальное состояние точно и надежно никак не получить.
P.S. АльФ! С какой частотой тебя гугл сниферит? Я даже не нажал кнопку отправить, а он уже этот пост засниферил
Цитата: Злоп от 05 сентября 2025, 14:54Или сделать тупо простоТак должно сработать. Попробуй. А ограничения я уже написал выше.
В Приоткрытии() запоминаем содержимое документа, а формексом Послезакрытия() сравниваем с уже текущим состоянием документа.
...
?
Попытка
ADOСоединение = Новый COMОбъект("ADODB.Connection");
ADOСоединение.ConnectionString = "Driver={SQL Server};Server=192.168.1.163;Database=EC;Uid=v8;Pwd=123456;";
ADOСоединение.Open();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Command = Новый COMObject("ADODB.Command");
Command.ActiveConnection = ADOСоединение;
ТекстЗапроса = "v8_getAnalysisListByPatient";
Command.CommandText = ТекстЗапроса;
Command.CommandType = 4;
Command.Parameters(1).value = Структура.ИД;
Результат = Command.Execute();
Массив = Новый массив;
Если НЕ Результат.EOF() Тогда
МассивСтруктур = Новый Массив;
Пока Результат.EOF() = 0 Цикл
КолКолонок = Результат.Fields.Count();
Строка = Новый Структура;
Для Инд = 0 По КолКолонок-1 Цикл
Строка.Вставить(Строка(Результат.Fields(Инд).Name),Строка(Результат.Fields(Инд).Value));
КонецЦикла;
Массив.Добавить(Строка);
Результат.MoveNext();
КонецЦикла;
КонецЕсли;