Столкнулся с проблемой, что при выгрузке из Excel файла не получается сверить, есть ли сотрудник в базе данных 1с? Сотрудников, которых нет следует выгружать в комментарии. Ниже прикладываю нужные участки кода.
ДанныеФайла=Новый ТаблицаЗначений;
ДанныеФайла.Колонки.Добавить("Дата");
ДанныеФайла.Колонки.Добавить("Номер");
ДанныеФайла.Колонки.Добавить("ТипДокумента");
ДанныеФайла.Колонки.Добавить("Организация");
ДанныеФайла.Колонки.Добавить("Сотрудник");
ДанныеФайла.Колонки.Добавить("Сумма");
ДанныеФайла.Колонки.Добавить("Начало");
ДанныеФайла.Колонки.Добавить("Окончание");
ДанныеФайла.Колонки.Добавить("МесяцНачисления");
ДанныеФайла.Колонки.Добавить("Комментарий");
ДанныеФайла.Очистить();
ТабДок=Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяВФ,СпособЧтенияЗначенийТабличногоДокумента.Значение);
ВысСтрок=ТабДок.ВысотаТаблицы;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДоговорРаботыУслуги.Ссылка КАК Ссылка,
| ДоговорРаботыУслуги.Номер КАК Номер,
| ДоговорРаботыУслуги.Представление КАК Представление,
| ДоговорРаботыУслуги.Организация.Наименование КАК Организация
|ИЗ
| Документ.ДоговорРаботыУслуги КАК ДоговорРаботыУслуги";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Для Стр=2 по ВысСтрок Цикл
Сумма=ТабДок.Область(Стр,5).Текст;
Если Сумма="" Тогда
Продолжить;
КонецЕсли;
СтрТз=ДанныеФайла.Добавить();
СтрТз.Дата=ТекущаяДата();
СтрТз.Номер=ВыборкаДетальныеЗаписи.Номер;
СтрТз.ТипДокумента=Лев(ВыборкаДетальныеЗаписи.Представление,24);
СтрТз.Организация=ВыборкаДетальныеЗаписи.Организация;
СтрТз.Сотрудник=ТабДок.Область(Стр,2).Текст;
СтрТз.Сумма=Сумма;
СтрТз.Начало=Объект.ДатаНачала;
СтрТз.Окончание=Объект.ДатаОкончания;
СтрТз.МесяцНачисления=Объект.Месяц;
СтрТз.Комментарий="";
КонецЦикла;
КонецЦикла;
Для Каждого Стр2 из ДанныеФайла Цикл
Значения=НайтиЗначения(Стр2.Сотрудник);
Если Значения.Пустая() Тогда
Значения=СтрТз.Комментарий;
КонецЕсли;
КонецЦикла;
КонецФункции
&НаСервере
Функция НайтиЗначения(Сотрудник);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДоговорРаботыУслуги.Ссылка КАК Ссылка
|ИЗ
| Документ.ДоговорРаботыУслуги КАК ДоговорРаботыУслуги
|ГДЕ
| ДоговорРаботыУслуги.ФизическоеЛицо.ФИО = &ФИО";
Запрос.УстановитьПараметр("ФИО", Сотрудник);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат ВыборкаДетальныеЗаписи.Ссылка;
КонецЕсли;
КонецФункции
Показать