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

Заполнить обработкой в справочнике реквизит ссылочного типа

Автор dxmas, 26 окт 2023, 09:32

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

dxmas

Добрый день!

Есть два справочника. В первом справочнике есть ПЕРВЫЙ реквизит, это ссылка на второй справочник, он не заполнен.

Так же в первом справочнике есть ВТОРОЙ заполненный реквизит, тип число.

Нужно заполнить во всех элементах справочника реквизит - ссылку при условии, что представление ПЕРВОГО реквизита ссылки равно ВТОРОМУ реквизиту.

LexaK

Продолжаем наблюдение за темой, пока ни чего не понятно...  :fdbsdfbsd:
если помогло нажмите: Спасибо!

Максим75

dxmas, так представление Ссылочного типа вроде бы никак не число. а у Вас второй реквизит число.

LexaK

Максим75, с этим то почти понятно, подразумевалось число тоже в виде строки получить

не понятно зачем
ЦитироватьНужно заполнить во всех элементах справочника реквизит - ссылку при условии, что представление ПЕРВОГО реквизита ссылки
если она уже заполнена? (судя по описанию)
если помогло нажмите: Спасибо!

dxmas

Максим75, то есть привести ссылку к числу и сравнить не получится, как я понял...

А если через загрузку файла xlsx? В первом столбце значение второго реквизита, во втором столбце, например, УИД ссылки. 

dxmas

Вот картинка, что куда уаткнуть:Справочник.jpg

LexaK

уже значительно понятнее, вот примерный код, вставьте эту процедуру в обработку, в обработчик кнопки
ТОЛЬКО ПОДСТАВЬТЕ СВОИ НАИМЕНОВАНИЯ СПРАВОЧНИКОВ И РЕКВИЗИТОВ
&НаСервере
Процедура ЗаполнитьКонструкцию()

лкВыборка = Справочники.РекламныеМеста.Выбрать();
Пока лкВыборка.Следующий() Цикл
Если Не ЗначениеЗаполнено(лкВыборка.Конструкция) Тогда
//ссылка на конструкцию еще не заполнена, ищем
лкКонструкция = Справочники.Конструкции.НайтиПоНаименованию(Формат(лкВыборка.НомерМеста,"ЧГ=0"));
Если ЗначениеЗаполнено(лкКонструкция) Тогда                                 
//нашли ссылку, заполняем
лкОбъект = лкВыборка.Ссылка.ПолучитьОбъект();
лкОбъект.Конструкция = лкКонструкция;
лкОбъект.Записать();
Сообщить("Заполнена Конструкция: " + лкВыборка.НомерМеста);
Иначе
Сообщить("Не найдена Конструкция: " + лкВыборка.НомерМеста);
КонецЕсли;
КонецЕсли;
КонецЦикла;

КонецПроцедуры
если помогло нажмите: Спасибо!

dxmas


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

Рейтинг@Mail.ru

Поиск