Заполнить несуществующее значение регистра сведений

1. nagaitseff 179 20.11.17 12:00 Сейчас в теме
День добрый!
Есть БП 7.7 в ней есть справочник, назовем его СПРАВОЧНИК 1, в справочнике есть 2 периодических реквизита, оба реквизиты ссылаются на другой справочник СПРАВОЧНИК 2.

Задача, перенести данные в регистр сведений.

Создал регистр сведений - все данные беру из СПРАВОЧНИКА 1
НО в ЕРП создали дополнительно Перечисление с 2 значениями Причина150 и Причина60.
В БП 7.7. с такими же названиями были периодические реквизиты.

// Регистр сведений Причины
ВыборкаДанных = СоздатьОбъект("ТаблицаЗначений");
ВыборкаДанных.НоваяКолонка("Период", "Дата");
ВыборкаДанных.НоваяКолонка("Активность");
ВыборкаДанных.НоваяКолонка("Декларация");
ВыборкаДанных.НоваяКолонка("ВидПричины");
ВыборкаДанных.НоваяКолонка("Причина");

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
    |Обрабатывать НеПомеченныеНаУдаление;
    |СпрОтгГТД = Справочник.ОтгГТД.ТекущийЭлемент;
    |Группировка СпрОтгГТД Упорядочить по СпрОтгГТД.Наименование Без групп;
    |";

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат 0;
КонецЕсли;

Пока Запрос.Группировка("СпрОтгГТД") = 1 Цикл
    
    СпрОтгГТД  = СоздатьОбъект("Справочник.ОтгГТД");
    СпрОтгГТД.НайтиЭлемент(Запрос.СпрОтгГТД);
        
    Пер = СоздатьОбъект("Периодический");
    Пер.ИспользоватьОбъект("Причина150",СпрОтгГТД.ТекущийЭлемент());
    Пер.ВыбратьЗначения();

    Пока Пер.ПолучитьЗначение() = 1 Цикл
        Если Пер.Значение.Выбран() = 1 Тогда
            ВыборкаДанных.НоваяСтрока();
            ВыборкаДанных.Период = Пер.ДатаЗнач;
            ВыборкаДанных.Причина = Пер.Значение;
            ВыборкаДанных.Декларация = СпрОтгГТД.Наименование;
            ВыборкаДанных.ВидПричины =????????????????????????????;
            ВыборкаДанных.Активность = 1;                             
        КонецЕсли;
    КонецЦикла;
        
    Пер = СоздатьОбъект("Периодический");
    Пер.ИспользоватьОбъект("Причина60",СпрОтгГТД.ТекущийЭлемент());
    Пер.ВыбратьЗначения();
    
    Пока Пер.ПолучитьЗначение() = 1 Цикл
        Если Пер.Значение.Выбран() = 1 Тогда
            ВыборкаДанных.НоваяСтрока();
            ВыборкаДанных.Период = Пер.ДатаЗнач;
            ВыборкаДанных.Причина = Пер.Значение;
            ВыборкаДанных.Декларация = СпрОтгГТД.Наименование;
            ВыборкаДанных.ВидПричины = ???????????????????;
            ВыборкаДанных.Активность = 1;                             
        КонецЕсли;
    КонецЦикла;
    
КонецЦикла;
Показать


Помогите пожалуйста, как заполнить ВидПричины, если это ссылка на справочник, а мне надо как то определить например, что это Причина150 и при загрузке выбрать необходимое перечисление??

Спасибо.
По теме из базы знаний
Найденные решения
7. Dream_kz 129 20.11.17 12:45 Сейчас в теме
(1)
ВыборкаДанных.ВидПричины =????????????????????????????;

ВыборкаДанных.ВидПричины = "Причина60";
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dream_kz 129 20.11.17 12:35 Сейчас в теме
(1) ВидПричины в приемнике это перечисление? Если да, то можно указывать строковое значение, оно преобразуется в перечисление
3. nagaitseff 179 20.11.17 12:37 Сейчас в теме
(2) Да, а как указать строковое значение, я на СКД, не очень тут еще 7ка???

Приведите пожалуйста пример..
4. nagaitseff 179 20.11.17 12:38 Сейчас в теме
6. гаврюша 3 20.11.17 12:43 Сейчас в теме
(4)Там где у Вас стоят ??? заменить на = Перечисления.ИмяПеречисления.Значение (Причина150 или Причина60)
5. гаврюша 3 20.11.17 12:41 Сейчас в теме
(1) Выборкаданных.ВидПричины = Перечисления.Имя.Причина150;
или ...Причина60
10. nagaitseff 179 21.11.17 07:20 Сейчас в теме
(5) Добрый день, так пробовал, не сработало.

Сработало только так: ВыборкаДанных.ВидПричины = "Причина60";

Спасибо.
7. Dream_kz 129 20.11.17 12:45 Сейчас в теме
(1)
ВыборкаДанных.ВидПричины =????????????????????????????;

ВыборкаДанных.ВидПричины = "Причина60";
8. nagaitseff 179 21.11.17 04:04 Сейчас в теме
(7) Добрый день!
Так не работает, все равно пустые поля, не грузит
9. nagaitseff 179 21.11.17 07:19 Сейчас в теме
(7) Перевыгрузил заново метаданные, создал заново правила обмена и прописал код, как вы посоветовали, сработало, регистр заполнился корректно, спасибо
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот