Доброго всем!
Сделал обработку для УНФ 1.6.27 которая отбирает заказы на производство, обходит отобранный список, получает объект, в тч Продукция меняет спецификацию на - по умолчанию (стандартной процедурой из модуля менеджера справочника Справочники.Спецификации.СпецификацияПоУмолчанию(спец.Номенклатура, спец.Характеристика)), после этого записывает объект в режиме проведения. База серверная постргешная.
И вот, отбирается 100 документов, запускается их обработка и у двух из них спецификация не меняется на по умолчанию, причем они перепроводятся. Если запустить второй раз - то у них все меняется как надо...
В копии в этих документах поменялось с 1-го раза, поэтому ошибку отловить не удалось...
Как так??? И дело наверно не в конкретной обработке, а как может не срабатывать с 1-го раза, но срабатывать со 2-го?
Сделал обработку для УНФ 1.6.27 которая отбирает заказы на производство, обходит отобранный список, получает объект, в тч Продукция меняет спецификацию на - по умолчанию (стандартной процедурой из модуля менеджера справочника Справочники.Спецификации.СпецификацияПоУмолчанию(спец.Номенклатура, спец.Характеристика)), после этого записывает объект в режиме проведения. База серверная постргешная.
И вот, отбирается 100 документов, запускается их обработка и у двух из них спецификация не меняется на по умолчанию, причем они перепроводятся. Если запустить второй раз - то у них все меняется как надо...
В копии в этих документах поменялось с 1-го раза, поэтому ошибку отловить не удалось...
Как так??? И дело наверно не в конкретной обработке, а как может не срабатывать с 1-го раза, но срабатывать со 2-го?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)Ну для начала можно показать код обработки тут.
Искать соответственно в отладчике - добавить лог, добавить проверку, что после проведения у документа значение реквизита поменялось. Если не поменялось, выдавать сообщение/ошибку/ставить точку останова и вот это вот все.
Искать соответственно в отладчике - добавить лог, добавить проверку, что после проведения у документа значение реквизита поменялось. Если не поменялось, выдавать сообщение/ошибку/ставить точку останова и вот это вот все.
(7)ну разве что проверять после проведения изменение значения... но это не объяснит, почему со 2-го раза меняет.
А код, он простой, как паровоз
А код, он простой, как паровоз
Зак = стр.Заказ.ПолучитьОбъект();
Для каждого спец из Зак.Продукция цикл
спец.Спецификация = Справочники.Спецификации.СпецификацияПоУмолчанию(спец.Номенклатура, спец.Характеристика);
КонецЦикла;
попытка
Зак.Записать(РежимЗаписиДокумента.Проведение);
стр.ПерепроведенЗак = истина;
исключение
//Сообщить(ОписаниеОшибки());
Ошибки = Ошибки + "Не удалось перепровести Заказ " + ОписаниеОшибки();
Возврат Ошибки;
Конецпопытки;
Показать
(10) ну надо так, какая разница зачем, долго объяснять, да и не нужно, и причем здесь возврат в исключении??? Вопрос не про методику кодирования, не про оптимизацию (уже началось про запросы в цикле...) а скорее технический - получаем объект, меняем у него реквизит, проводим, ошибок нет - реквизит прежний, еще раз на ту-же кнопку - реквизит меняется.
Думаю, прав (2) по поводу пересохраненной версии, ну и кэш.
Вспомнил, что пару лет назад сталкивался с ситуацией - пишем в конфе внешнюю обработку, запускаем из под конфы 1с-ну, открываем через файл - работает, затем меняем во внешней обработке что-то, сохраняем, запускаем из под уже открытой 1с через файл - изменений нет, пока заново не перезапустить 1с-ну они не появлялись. С таким встречался всего раз - но такое бывает.
В данном случае, обработку я действительно несколько раз модернизировал и заново загружал в дополнительные, а перезапустить сеанс, под которым происходило чудо, не было возможности.
Завтра посмотрим.
Думаю, прав (2) по поводу пересохраненной версии, ну и кэш.
Вспомнил, что пару лет назад сталкивался с ситуацией - пишем в конфе внешнюю обработку, запускаем из под конфы 1с-ну, открываем через файл - работает, затем меняем во внешней обработке что-то, сохраняем, запускаем из под уже открытой 1с через файл - изменений нет, пока заново не перезапустить 1с-ну они не появлялись. С таким встречался всего раз - но такое бывает.
В данном случае, обработку я действительно несколько раз модернизировал и заново загружал в дополнительные, а перезапустить сеанс, под которым происходило чудо, не было возможности.
Завтра посмотрим.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот