Сравнить табличную часть текущую с регистром накопления

1. Zwek 30.10.20 09:06 Сейчас в теме
Доброго времени.
В программировании недавно.
Стоит задача в УТ11 снята с поддержки, документе Реализация товаров и услуг, в табличной части зафиксировать изменение ТЧ.
Выдать оповещение с добавленными или удаленными строками пользователю.
Сам алгоритм собрал, работает.
На выходе получаю ТЗ на сервере в модуле объекта РТУ.

Мысли: Запрос1 нужени из регистра накопления до Обработкипроведения, как передать результат запроса в модуль формы?

Не могу передать сообщение с результатом на клиент, подскажите как это сделать?
Не понимаю как передавать из модуля в модуль значения, может ссылкой кто поделится почитать.
Заранее спасибо!
По теме из базы знаний
Найденные решения
24. Zwek 03.11.20 07:57 Сейчас в теме
Решение вопроса такое - Таблицу0 получил из регистра, а Таблицу1 сформировал из текущей ТЧ. Дальше сравнил.
Что касается передачи результата функции в другой модуль,
ДокОбъект = РеквизитФормыВЗначение("Объект");
. Всем спасибо.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. FatPanzer 30.10.20 09:10 Сейчас в теме
(1)
На выходе получаю ТЗ на сервере... Не могу передать ... на клиент, подскажите как это сделать?

Читаем внимательно:
ТаблицаЗначений (ValueTable)
...
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Возможен обмен с сервером. Сериализуется. Данный объект может быть сериализован в/из XDTO.


Не понимаю как передавать из модуля в модуль значения,

1. Через входящие параметры процедуры/функции
2. Через возврат результата функции.
4. Zwek 30.10.20 09:16 Сейчас в теме
(2)Я же могу ТЗ в массив, в строку и т.д., а потом передать. Но я не смекаю как передать в модуль формы значение.
5. FatPanzer 30.10.20 09:16 Сейчас в теме
(4)
2. Через возврат результата функции.
7. Zwek 30.10.20 09:20 Сейчас в теме
Функция СравнитьТабличныеЧасти() Экспорт // Сравниваем ТЧ
	
	Таблица0 = ПолучитьТабличнуюЧастьИзРегистра();
	Таблица1 = ПолучитьТабличнуюЧасть();
	
	Если ЗначениеЗаполнено(Таблица0) И ЗначениеЗаполнено(Таблица1) Тогда
		
		// Получаем удаленные или добавленные строки
		ВсеКолонки = "";
		Для Каждого Колонка Из Таблица0.Колонки Цикл 
			ВсеКолонки = ВсеКолонки + ", " + Колонка.Имя
		КонецЦикла;
		ВсеКолонки = Сред(ВсеКолонки, 2);
		
		Таблица = Таблица1.Скопировать();    
		
		Таблица.Колонки.Добавить("Знак", Новый ОписаниеТипов("Число"));
		
		Таблица.ЗаполнитьЗначения(1, "Знак");
		
		Для Каждого Строка Из Таблица0 Цикл ЗаполнитьЗначенияСвойств(Таблица.Добавить(), Строка) КонецЦикла;
		
		Таблица.Колонки.Добавить("Счёт");
		Таблица.ЗаполнитьЗначения(1, "Счёт");
		
		Таблица.Свернуть(ВсеКолонки, "Знак, Счёт");
		
		РазницаТЗ = Таблица.Скопировать(Новый Структура("Счёт", 1), ВсеКолонки + ", Знак");
		
		РазницаТЗ.Сортировать("Брутто Возр");
		
		//// Показываем сообщение пользователю
		//Если ЗначениеЗаполнено(Разница) Тогда	
		//	// ВопросПослеСравненияТЧ(Ответ);

		//КонецЕсли;
			
	КонецЕсли;	

	Возврат РазницаТЗ;
		
КонецФункции
Показать


В модуле формы как получить возврат результата функции? Разные модули же ...
8. FatPanzer 30.10.20 09:25 Сейчас в теме
(7)
В модуле формы как получить возврат результата функции? Разные модули же ...
Точно так же как и в остальных. Есть вызов функции - есть возврат результата.
Результат = КакойТоМодуль.КакаяТоФункция();


Вот только зачем это засовывать в модуль объекта - так и не понял.
9. Zwek 30.10.20 09:48 Сейчас в теме
(8)
Результат = МодульОбъекта.СравнитьТабличныеЧасти();


Ошибку выдает
10. FatPanzer 30.10.20 09:49 Сейчас в теме
(9) Конечно. И я даже знаю какую.
11. Zwek 30.10.20 09:49 Сейчас в теме
(10)Пополни мой опыт, я стану мудрее =)
12. FatPanzer 30.10.20 09:50 Сейчас в теме
(11) "Переменная МодульОбъекта не обнаружена"?
13. Zwek 30.10.20 09:52 Сейчас в теме
(12)Да (Переменная не определена).
14. FatPanzer 30.10.20 10:01 Сейчас в теме
(13) Я все еще жду ответа на свое недоумение
Вот только зачем это засовывать в модуль объекта - так и не понял.
15. Zwek 30.10.20 10:02 Сейчас в теме
(14)Извиняюсь, упустил вопрос. Это в модуле формы будет.
16. FatPanzer 30.10.20 10:04 Сейчас в теме
(15) Значит и ошибки не будет, если сравнение будет в серверной функции модуля формы.
17. Zwek 30.10.20 10:05 Сейчас в теме
(16)Спасибо, так не пробовал, испытаю напишу по результату.
3. maks_20 169 30.10.20 09:13 Сейчас в теме
Если надо просто пользователю сообщить, то Сообщение = Новый СообщениеПользователю(); либо ОбщегоНазначения.СообщитьПользователю() что в принципе сути не меняет.
6. Zwek 30.10.20 09:17 Сейчас в теме
(3)Далее нужно задать вопрос пользователю.
18. DanDy 57 30.10.20 10:06 Сейчас в теме
А зачем получать изменения табличной части документа через регистр?
Можно же например в модуле формы "ПередЗаписью"
Взять условные "Объект.Товары" и "Объект.Ссылка.Товары" и их сравнить.
FatPanzer; +1 Ответить
19. FatPanzer 30.10.20 10:07 Сейчас в теме
(18) Это был следующий этап обучения )))
20. Zwek 30.10.20 10:09 Сейчас в теме
(18)Я тоже предлагал данный вариант на получении задачи, но нужно сравнить именно с регистром.
21. FatPanzer 30.10.20 10:14 Сейчас в теме
(20) Кому нужно? Это как сравнивать кусок хлеба с бутербродом. Регистр - это производная от документа, там неполный состав данных, дубли, условные исключения и прочее. Да в конце концов записей в регистрах даже может и не быть в случае отложенного проведения или условного проведения по статусу документа - все зависит от прикладной логики документа и его движений.

А таблица документа - она всегда таблица документа. С одинаковыми реквизитами.
22. Zwek 30.10.20 10:19 Сейчас в теме
(21)Более опытному программисту 1С в моей компании, но его нет сейчас на месте (уже неделю нет)).
23. FatPanzer 30.10.20 10:22 Сейчас в теме
(22) Правильно писать так: "более опытный".
24. Zwek 03.11.20 07:57 Сейчас в теме
Решение вопроса такое - Таблицу0 получил из регистра, а Таблицу1 сформировал из текущей ТЧ. Дальше сравнил.
Что касается передачи результата функции в другой модуль,
ДокОбъект = РеквизитФормыВЗначение("Объект");
. Всем спасибо.
25. FatPanzer 03.11.20 08:31 Сейчас в теме
(24)
Что касается передачи результата функции в другой модуль,
И эти люди называют себя 1С-никами...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот