Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)
Имеется самописные справочник "Сотрудники" и самописный документ "Начисление заработной платы.
В документе "Начисление" ТЧ заполняется автоматически по кнопке. Код обходит справочник "Сотрудники" и по определенному алгоритму заполняет нужных сотрудников в ТЧ документа "Начисление".
Код работает правильно и без проблем. Но столкнулся со следующей проблемой.
Предположим забыли добавить в справочник "Сотрудники" нового сотрудника и/или перевели в другой отдел, поменяли оклад и т.д.
Конечно, можно взять и нажать вышеупомянутую кнопку и ТЧ "Начисления" заполнится новым правильным списком, но данные расчета по "старым" сотрудникам естественно затруться и расчет нужно будет проводить заново, что крайне плохо...
Каким образом можно сделать при заполнении ТЧ документа проверку, что по такому-то сотруднику уже есть данные в ТЧ и добавлять его не нужно, т.е. оставить данные ТЧ не измененными? Т.е. дозаполнить ТЧ только "новыми" или "забытыми" сотрудниками?
Constantus @ Сегодня, 9:18
,
В стандартных решениях делают кнопку "Рассчитать по сотруднику".
Придумал "гениальнейшее решение".
В ТЧ справочника ввел новый реквизит "ИД" (текст, 200)
При создании новой записи в ТЧ справочника добавил код:
Элемент.ТекущиеДанные.ИД = Новый УникальныйИдентификатор;
Constantus @ Сегодня, 12:21
,
Можно и проще:
1. Перед перезаполнением таб части выгружаете её в таблицу значений
КопияТЧ = ВАШАТАБЧАСТЬ.Выгрузить();
СтруктураПоиска = Новый Структура;
СтруктураПоиска.Вставить("Сотрудник", ВашСотрудник);
НайденныеСтроки = ВАШАТАБЧАСТЬ.НайтиСтроки(СтруктураПоиска);
Если НайденныеСтроки.Количество() = 0 Тогда
НоваяСтрока = ВАШАТАБЧАСТЬ.Добавить();
Иначе
НоваяСтрока = ВАШАТАБЧАСТЬ.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, НайденныеСтроки[0]);
КонецЕсли;
ТекСотрудники = ТабСотрудники.ВыгрузитьКолонку("Сотрудник");
ТаблицаНеПустая = ТекСотрудники.Количество() > 0;
Запрос.Текст = "
|ВЫБРАТЬ
| Сотруники.Ссылка
|ИЗ
| Справочник.Сотрудники КАК Сотрудники
|ГДЕ
| ВЫБОР КОГДА &ТаблицаНеПустая ТОГДА Сотрудники.Ссылка НЕ В (&ТекСотрудники) ИНАЧЕ ИСТИНА КОНЕЦ
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua