Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 окт 2024, 21:09

заполнить из одной таблицы пустой реквизит 2ой таблицы

Автор Matana331, Сегодня в 10:20

0 Пользователей и 2 гостей просматривают эту тему.

Matana331

Подскажите, пожалуйста, почему не работает код?выгрузила таблицу из 1с:ERP с ФИО и таб.номером сотрудников. Хочу автоматически заполнить табельный номер в 1С:ДО.


 

Максим75

Matana331, а что не получается?
Таблица не заполняется? или Вы хотите данными из файла заполнить объекты справочника?

Потому как у Вас в коде после заполнения некой Таблицы выполняется запрос. В запросе выбирается что-то из справочника Сотрудники.
Обходите выборку, проверяете Выборка.Владелец (какой тип?) и ФИО (какой тип?) и если они совпадают, то в выборке табельному номеру присваиваете что-то (ТабельныйНомер - это будет последнее значение, которые Вы получили при обходе в цикле строк файла). И все. Вот и задаю вопрос - а что хотелось сделать?

Matana331


antoneus

Попробуйте объяснить построчно - что делает ваш код.

Пока Выборка.Следующий() Цикл//цикл по выборке, это я понимаю
    Если Выборка.Владелец = ФИО Тогда//что находится в переменной ФИО? Значение из последней ячейки табличного документа? Строка? У поля сотрудника Владелец тип строка и мы ждем, что эта строка совпадет со значением в последней ячейке табличного документа?
        ЗаполнитьЗначенияСвойств(Выборка.ТабельныйНомер, ТабельныйНомер)//зачем-то пытаемся запихать в поле выборки из результата запроса (занятие безнадежное) последнее значение в другой ячейке табличного документа, даже не так - мы пытаемся заполнить поля строки (какие там поля?) значениями в полях (каких?) другой строки

Максим75

Цитата: Matana331 от Сегодня в 10:34Максим75, Да, не заполняется таблица
т.е. у Вас не отрабатывает код, где Вы в цикле заполняете Таблицу.
Запрос вообще пока не трогаем, там какая-то глупость на сей момент.
Вот у Вас из файла не заполняется Таблица? Правильно ли я Вас понимаю?
Таблица - это что? Реквизит формы или реквизит самой обработки (отчета)? Какой тип у ФИО и ТабНомер?

Matana331

Максим75, в выборке: Владелец с типом СправочникСсылка.ФизическиеЛица, ТабельныйНомер - строка;
В таблице, из которой я беру данные ФИО- Строка и ТабельныйНомер - Строка. Т.е, чтобы заполнился табельный номер, мне нужно Владельца и ФИО сделать одинаковым типом? 

Максим75

Цитата: Matana331 от Сегодня в 11:00Максим75, в выборке: Владелец с типом СправочникСсылка.ФизическиеЛица, ТабельныйНомер - строка;
В таблице, из которой я беру данные ФИО- Строка и ТабельныйНомер - Строка. Т.е, чтобы заполнился табельный номер, мне нужно Владельца и ФИО сделать одинаковым типом? 
вряд ли у Вас получится это сделать. надо у Владельца поискать что-то типа Наименование или в таком духе, ну где сама фамилия хранится и уже это сравнивать.
Вот пока не трогаем запрос.
У вас Таблица данными из файла заполняется?

Matana331

Максим75, да, таблица заполняется из файла xml. Ранее я выгрузила данные из 1С:ERP c нужными мне столбцами. Создала в обработке таблицу и заполнила значения новой таблицы значениями из файла

Максим75

Matana331, замечательно. теперь смотрите в справочнике Физические лица где у Вас нечто подобное первому столбцу хранится.

один раз создайте запрос по всему справочнику сотрудников, выгрузите выборку в таблицу значений, добавьте в таблицу значений еще одну колонку (для хранения фамилии с инициалами в верхнем регистре), обойдите в цикле эту таблицу значений и в добавленной колонке используйте ВРЕГ() и заполните эту колонку. Это надо для того, чтобы потом проверять, потому как для 1С Пупкин Василий Алибабаевич и Пупкин Василий алибабаевич разные пупкины. У вас должна получиться таблица значений, где в первой колонке Ссылка на элемент справочника физические лица, а во второй колонке строка с фамилией и инициалами в верхнем регистре.

потом обходите в цикле полученную таблицу (хотя это можно сразу при загрузки файла делать, но пробуйте пока так, пошагово).
и в цикле фамилию тоже переводите в верхний регистр и уже по этой переведенной фамилии с инициалами ищите в таблице значений по второй колонке, когда находите, то в первой колонке таблицы у Вас будет ссылка по элементы справочника, по ссылке получаете объект и уже в объекте заполняете табельный номер и сохраняете.


Matana331

Максим75, сделала все так, как Вы сказали. По отладке все супер, все заполняется, но по факту ничего в реквизит ТабельныйНомер не занеслось. Возможно требуется ТаблицуЗначений Записать, но такого метода нет

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск