При использовании внешней обработки происходит ошибка "произошла неисправимая ошибка на сервере 1с предприятие

1. Veta-_- 15.02.24 14:28 Сейчас в теме
Добрый день!
Подскажите пожалуйста, может кто сталкивался с данной ошибкой "Произошла неисправимая ошибка на сервере 1с предприятие"
Ошибка возникает при использовании внешней обработки.
Суть обработки почистить контактную информацию справочника партнеры.
Обработка самопиская, программист я уровня ну совсем новичок.
Заметила, что если обрабатывается какое-то небольшое количество элементов, то все замечательно, при большом количестве возникает ошибка
Подскажите пожалуйста, что делаюне так.
Текст обработки
Запрос = Новый Запрос;
    

    Запрос.Текст = 
        "ВЫБРАТЬ
        |    Партнеры.Ссылка КАК Ссылка,
        |    Партнеры.Наименование КАК Наименование,
        |    ПартнерыКонтактнаяИнформация.Ссылка КАК Ссылка1,
        |    Партнеры.CRM_СегментРынка КАК CRM_СегментРынка
        |ИЗ
        |    Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры КАК Партнеры
        |        ПО ПартнерыКонтактнаяИнформация.Ссылка = Партнеры.Ссылка"         ;
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
       Номер = 1;
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Ссылка = ВыборкаДетальныеЗаписи.Ссылка;
        СсылкаОбъект = Ссылка.ПолучитьОбъект();
         Если СсылкаОбъект.CRM_СегментРынка = Справочники.CRM_СегментыРынка.НайтиПоНаименованию("Розничный магазин")
             Тогда 
        Для каждого СтрТч из СсылкаОбъект.КонтактнаяИнформация Цикл 
            СсылкаОбъект.КонтактнаяИнформация.Очистить();
            
                КонецЦикла;
       СсылкаОбъект.Записать();
       КонецЕсли;
     КонецЦикла;
Показать
Найденные решения
4. SlavaKron 15.02.24 15:19 Сейчас в теме
(1)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|    ПартнерыКонтактнаяИнформация.Ссылка КАК Ссылка
|ИЗ
|    Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
|ГДЕ
|    ПартнерыКонтактнаяИнформация.Ссылка.CRM_СегментРынка = &СегментРынка";
Запрос.УстановитьПараметр("СегментРынка", Справочники.CRM_СегментыРынка.НайтиПоНаименованию("Розничный магазин"));
РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    СправочникОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
    СправочникОбъект.КонтактнаяИнформация.Очистить();
    СправочникОбъект.ОбменДанными.Загрузка = Истина;
    СправочникОбъект.Записать();
КонецЦикла;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 81 15.02.24 15:04 Сейчас в теме
(1)включить остановку по ошибке в режиме отладки не предлагать?
3. Vladimir-R 171 15.02.24 15:19 Сейчас в теме
(1)
Для каждого СтрТч из СсылкаОбъект.КонтактнаяИнформация Цикл
СсылкаОбъект.КонтактнаяИнформация.Очистить();

КонецЦикла;

т.е. вы очищаете контактную информацию документа столько раз, сколько строк у вас хранится в тч Контактнаяинформация?

СсылкаОбъект.CRM_СегментРынка = Справочники.CRM_СегментыРынка.НайтиПоНаименованию("Розничный магазин") - зачем работать с объектом, когда у вас есть ссылка?
4. SlavaKron 15.02.24 15:19 Сейчас в теме
(1)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|    ПартнерыКонтактнаяИнформация.Ссылка КАК Ссылка
|ИЗ
|    Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
|ГДЕ
|    ПартнерыКонтактнаяИнформация.Ссылка.CRM_СегментРынка = &СегментРынка";
Запрос.УстановитьПараметр("СегментРынка", Справочники.CRM_СегментыРынка.НайтиПоНаименованию("Розничный магазин"));
РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    СправочникОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
    СправочникОбъект.КонтактнаяИнформация.Очистить();
    СправочникОбъект.ОбменДанными.Загрузка = Истина;
    СправочникОбъект.Записать();
КонецЦикла;
Показать
5. Veta-_- 15.02.24 15:45 Сейчас в теме
(4) Большое спасибо ! Очень помогло и очень быстро отработало!
6. SlavaKron 15.02.24 15:50 Сейчас в теме
В конфигурациях ERP, УТ, КА контактная информация может также содержаться в справочнике Контрагенты.
7. Veta-_- 15.02.24 15:53 Сейчас в теме
(6) Большое спасибо за уточнение, ее тоже мне надо б вычистить, буду ориентироваться на ваш код ! Еще раз благодарю.
8. Onwardv 68 16.02.24 10:20 Сейчас в теме
Подозреваю, что у Вас ошибка из-за того, что Вы очищаете всю табличную часть внутри цикла обхода строк этой табличной части.
9. Veta-_- 16.02.24 10:44 Сейчас в теме
(8) Да, большое спасибо, я там явно намудрила с циклом , но уже помогли разобраться)
Оставьте свое сообщение

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