Как правильно записать

1. ShramkoRS 06.03.23 11:05 Сейчас в теме
Вопрос. Есть код обработки (обработка одноразовая). Проблема в том, что она все читает, только ничего не записывает. Я не понимаю, мне записывать табличную часть? Записывать документ? Записывать их по порядку?

Процедура ЗаполнениеТЧ() Экспорт
    ЗапросРТиУ = Новый Запрос;
    ЗапросРТиУ.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    РеализацияТоваровУслугТовары.Ссылка,
    |    РеализацияТоваровУслугТовары.СерияНоменклатуры.ижСертификат КАК Сертификат
    |ИЗ
    |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары";
    
    РезРТиУ = ЗапросРТиУ.Выполнить().Выгрузить();
    
    ЗапросСертификаты = Новый Запрос;
    ЗапросСертификаты.Текст = "ВЫБРАТЬ
                              |    ижСертификат.Ссылка КАК Ссылка,
                              |    ижСертификат.ЭлектронныйДокумент КАК ЭД
                              |ИЗ
                              |    Документ.ижСертификат КАК ижСертификат";
    РезСертификаты = ЗапросСертификаты.Выполнить().Выгрузить();
    
    Для каждого СтрСертификаты Из РезСертификаты Цикл
        Если ЗначениеЗаполнено(СтрСертификаты.ЭД) Тогда
            
            Для каждого СтрРТиУ Из РезРТиУ Цикл
                Если СтрРТиУ.Сертификат = СтрСертификаты.Ссылка Тогда
                    ДокСертификат = СтрСертификаты.Ссылка.ПолучитьОбъект();
                    СтрокаТЧ = ДокСертификат.ЭлектронныеДокументы.Добавить();
                    СтрокаТЧ.ЭлектронныйДокументСертификата = СтрСертификаты.ЭД;
                    СтрокаТЧ.РеализацияТоваровУслуг         = СтрРТиУ.Ссылка;
                    СтрокаТЧ.Вес                            = 0;
                    СтрСертификаты.ЭД = Неопределено;
                    Попытка
                        ДокСертификат.Записать();  // вот эта запись не записывается
                    Исключение
                        лкОшибка = ОписаниеОшибки();
                        Сообщить(лкОшибка);
                    КонецПопытки;
                    КонецЕсли;
                КонецЦикла;
                
            КонецЕсли;
        КонецЦикла;
        
    КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 06.03.23 11:49 Сейчас в теме
(1) А ошибка-то какая? И пока разрабатываете лучше Попытку Исключение убрать.
3. ShramkoRS 06.03.23 12:14 Сейчас в теме
(2) Если это можно назвать ошибкой. Код отрабатывает, ошибок нет но и изменений тоже нет. Ничего будто бы не записывается.
4. homer_ 79 06.03.23 12:32 Сейчас в теме
(3) потому что для начало надо объяснить, что вы хотите сделать.
по коду ясно что у вас во всех документа будет одна и та же реализация))
5. ShramkoRS 06.03.23 12:34 Сейчас в теме
(4) вот тут описывал, что оно должно делать https://forum.infostart.ru/forum9/topic294646/
6. minarenko 06.03.23 12:39 Сейчас в теме
(5)перезапустите компьютер и все заработает
7. homer_ 79 06.03.23 12:39 Сейчас в теме
(5)
Мне нужно сделать обработку, которая пройдется по всем Сертификатам. У тех которых найдет не пустой ЭД возьмет и найдет все документы РТУ, которые ссылаются серией на тот же электронный документ, что содержится в ЭД данного Сертификата, после чего занесет все найденные документы РТУ в ТЧ ЭДы.

не вижу данного условия в ваше обработки
8. ShramkoRS 06.03.23 12:45 Сейчас в теме
(7)
Для каждого СтрСертификаты Из РезСертификаты Цикл //Проходимся по всем Сертификатам
        Если ЗначениеЗаполнено(СтрСертификаты.ЭД) Тогда // Ищем те у которых есть ЭД
            
            Для каждого СтрРТиУ Из РезРТиУ Цикл //проходимя по РТУ
                Если СтрРТиУ.Сертификат = СтрСертификаты.Ссылка Тогда // ищем те, которые ссылаются серией на тот же электронный документ, что содержится в ЭД данного Сертификата
10. homer_ 79 06.03.23 12:58 Сейчас в теме
(8) СтрокаТЧ.ЭлектронныйДокументСертификата = СтрСертификаты.ЭД;
ЭД - это же табличная часть!
12. ShramkoRS 06.03.23 12:59 Сейчас в теме
(10)ЭлектроннЫЙДокуменТ - это реквизит, который не содержится в ТЧ ЭлектроннЫЕДокуменТЫ
9. RustamZz 06.03.23 12:56 Сейчас в теме
(3) А где и как вы понимаете, что ничего не изменилось? И
СтрСертификаты.ЭД = Неопределено;

оно только в ТЗ меняется, а не в документе.
11. ShramkoRS 06.03.23 12:59 Сейчас в теме
(9) Не в ТЗ, а в ТЧ. ЭлектроннЫЙДокуменТ - это реквизит, который не содержится в ТЧ ЭлектроннЫЕДокуменТЫ. Как понимаю? Ручками открываю сертифкат в предприятии, глазками смотрю, что таблица пустая, а реквизит заполненный
13. RustamZz 06.03.23 13:01 Сейчас в теме
(11) Я умею читать читать чужой код. И пишу то как у вас сделано, а вы, похоже, пишите как хотели сделать.
15. ShramkoRS 06.03.23 13:02 Сейчас в теме
(13) А, понял. Прошу прощения. А как тогда сделать, чтоб он и в документе менялось?
16. RustamZz 06.03.23 13:03 Сейчас в теме
(15)
ДокСертификат.ЭД = Неопределено; 
17. ShramkoRS 06.03.23 13:04 Сейчас в теме
(16)Окей, почему запись не стирается стало яснее, а почему запись в ТЧ не происходит
18. RustamZz 06.03.23 13:31 Сейчас в теме
(17) Где вы это видите? По коду проблем нет. Под отладкой смотрели?
19. ShramkoRS 06.03.23 13:35 Сейчас в теме
(18)А как отладкой проверить произошла ли запись или нет? Я это вижу когда открываю Сертификат, а в нем никаких изменений.
20. beldieff 06.03.23 14:48 Сейчас в теме
(19)shift+f9 ДокСертификат.ЭлектронныеДокументы.количество()
14. polax 06.03.23 13:01 Сейчас в теме
Уверен, что данными заполняется ТЧ? Тогда может просто обновить данные формы?
Оставьте свое сообщение

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