Версия для печати темы (https://pro1c.org.ua/index.php?s=4996144c5e08ca504ca67a1014c689f1&showtopic=62093)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование управляемых форм 1С 8.2 _ Смена родителя у справочника

Автор: Alexandr91 08.10.20, 13:52

Добрый день, есть поле табличного документа на форме, в него выводятся опр данные, если строка Категория и строка Родитель не совпадают, то они окрашиваются в опр цвет, написал блок код, который берёт эти окрашенные поля и должен в справочнике у элементов, которые в поле табличного документа были окрашены, сменить родителей на соответствующие их категории, но почему-то этого не происходит, вот сам код кнопки:

Выборка = Справочники.Номенклатура.Выбрать();
    Пока Выборка.Следующий() Цикл
        ДС = ТЗ.Добавить();
        ДС.Наименование = Выборка.Наименование;
        ДС.ВидНоменклатуры = Выборка.ВидНоменклатуры;
        ДС.Категория = Выборка.Категория;
        ДС.Родитель = Выборка.Родитель;
    КонецЦикла;
    
    спр = Справочники.Номенклатура;
    а = 1;
    
    Пока Выборка.Следующий() Цикл
        Если ТабДок.Область(а,1).ЦветФона = WebЦвета.БледноЛиловый Тогда
            поиск = спр.НайтиПоНаименованию(ДС.Категория).ПолучитьОбъект();
            поиск1 = спр.НайтиПоНаименованию(ДС.Родитель).ПолучитьОбъект();
            поиск.Родитель = поиск1.Ссылка;
            поиск.Записать();
        Иначе
            Прервать;
        КонецЕсли;
        а = а + 1;
    КонецЦикла;


Автор: kihor 08.10.20, 17:28

Alexandr91 @ Сегодня, 14:52 * ,

Подозреваю, что второй цикл уже не выполняется, т.к. первый цикл выбрал все записи в выборке. Попробуйте перед вторым циклом сделать еще раз:

Выборка = Справочники.Номенклатура.Выбрать();


(что-то не нашел как спозиционировать по другому выборку снова на первую запись)

И не совсем ясно зачем во втором цикле делать ПолучитьОбъект() если потом к полученному объекту применять ".Ссылка".

Alexandr91 @ Сегодня, 14:52 * ,

Да, и вообще - какой-то странный код. Мне не понятно как во втором цикле задумывалась синхронизация с ДС и табличным документом ТабДок. Возможно, Вы привели не весь текст.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua