Ребят, нужна помощь.
На форме две ТЗ Актуальные и Группа. Суть обработки- в актуальных -список сотрудников, в группе сотрудники в группе, начальник меняет список группы(реализовано перетаскиванием, то есть перемещает сотрудников из одной табл в другую и наоборот, тем самым формирует Новый список сотрудников Группы и при нажатии кнопки Сформировать создается Документ с новым списком Группы.
ТЗ заполняются они каждая своим запросом при открытии формы.
В документ должны попасть сотрудники из нового списка с галочкой в группе и сотрудники которых исключили из группы без галочки
Пример:
Старый список
иванов
петров
сидоров

Новый список
иванов
петров
козлов

Исключили
сидоров

В документ
иванов+
петров+
козлов+
сидоров-

В итоге у меня события:
1 &НаСервере
Процедура ПриОткрытииНаСервере() - здесь заполняются ТЗ с помощью запросов
2 &НаКлиенте
Процедура ПриОткрытии(Отказ)
3 &НаКлиенте
Процедура Сформировать(Команда)
4 &НаСервере
Функция СформироватьДокументНаСервере()
5 &НаКлиенте
Процедура СписокГруппыПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
6 &НаКлиенте
Процедура СписокАктуальныхСотрудниковПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)

Не понимаю в каком событии поймать первоначальные данные, окончательный список и где их сравнить
---
```1c
    ТЗ_ВДокумент = ТЗ_НовыйСписок.Скопировать();
    ПараметрыПоискаСтроки = Новый Структура;
    Для Каждого Стр_СтарыйСписок из ТЗ_СтарыйСписок Цикл
    ПараметрыПоискаСтроки.Вставить("Сотрудник",Стр_СтарыйСписок.Сотрудник);
    МасСтрок = ТЗ_ВДокумент.НайтиСтроки(ПараметрыПоискаСтроки);
    Если МасСтрок.Количество()>0 тогда
    //Сотрудник есть
    //отмечаем если нужно его как сотрудника найденного в обеих ТЗ
    Иначе
    // Сотрудник был удалён добавляем в нашу ТЗ
    НовСтр = ТЗ_ВДокумент.Добавить();
    //Заполняем как нам надо
    КонецЕсли;
    КонецЦикла;
```
---
ТЗ заполняются они каждая своим запросом при открытии формы. Вот куда записывали, оттуда и читайте. В ПриСозданииНаСервере()
---
не понимаю дальше то где работать?
список изменили... как быть дальше?
можно пример?
---
создавай копии ТЗ и сравнивай их по внутреннему соединению после редактирования
---
да, так и предполагала делать, основной вопрос где)
---
Делаешь копию ТЗ после заполнения запросом. а для сравнения можно сделать кнопку.
---
извините, не правильно прочла название события, сейчас пробовать буду
---
```1c
    ТЗ_ВДокумент = ТЗ_НовыйСписок.Скопировать();
    ПараметрыПоискаСтроки = Новый Структура;
    Для Каждого Стр_СтарыйСписок из ТЗ_СтарыйСписок Цикл
    ПараметрыПоискаСтроки.Вставить("Сотрудник",Стр_СтарыйСписок.Сотрудник);
    МасСтрок = ТЗ_ВДокумент.НайтиСтроки(ПараметрыПоискаСтроки);
    Если МасСтрок.Количество()>0 тогда
    //Сотрудник есть
    //отмечаем если нужно его как сотрудника найденного в обеих ТЗ
    Иначе
    // Сотрудник был удалён добавляем в нашу ТЗ
    НовСтр = ТЗ_ВДокумент.Добавить();
    //Заполняем как нам надо
    КонецЕсли;
    КонецЦикла;
```
---
ИМХО, не наглядно и запутанно это, как для пользователя так и для программиста. Почему нельзя переделать механизм обработки, чтобы в документ попадали сотрудники целиком и полностью из одного списка, (возможно из 3-го)?!
---
для пользователя вообще все просто и наглядно, 3 табл лишняя это уж точно.
для программиста, да соглашусь не легко, ну для моего уровня знаний...
заморочка в том, что формируемый документ это регистратор в дальнейшем для Регистра сведений, поэтому исключенных сотрудников мне тоже нужно учитывать
---
для пользователя вообще все просто и наглядно
Из описания задачи этого не следует. Что должно попасть в итоговый документ? Данные из 2-х списков или из одного?
---
может слишком сложно написала изначально .
в документ попадаю сотрудники из одной таблицы + те которых удалили из этой таблицы
---
Ну вот в этом и сложность. И для пользователя тоже.
Гораздо нагляднее и проще собирать данные, которые потом, куда-либо попадут в одной таблице/списке!
---
Если есть доступ к ЗиУП 3.1 посмотрите как реализована работа со штатным расписанием. Это я к тому что не нужно непосредственно удалять строки из ТЧ "Группы" а использовать Условное оформление для показа изменений. Например добавить в ТЧ 2 реквизита типа булево "Добавлен" , "Удален" (но на форму их не выводить) при добавлении или удалении устанавливать один из реквизитов. и в зависимости от значения окрашивать строки в разные цвета (зеленый при добавлении , красный при удалении но саму строку не удалять из ТЧ). Тогда решается вопрос заполнения вашего документа и наглядности для пользователя.
---
к сожалению нет ЗиУП, но подобная мысль была
---
Можно в запрос таблицы и там обработать
---
можно объединить и свернуть
---
Для отладки всего этого, нужно формировать список исключенных и список добавляемых в разных тз, не на форме.

Чтобы при перетаскивании таблица подготовленная для проведения уже была. Я бы не сравнивал, а сделал бы обработчик перетаскивания который бы генерировал эти таблицы