|
Разное поведение кода при запуске по расписанию и через интерфейс обработки | ☑ | ||
---|---|---|---|---|
0
TSSV
25.07.23
✎
10:47
|
Добрый день, коллеги! Столкнулся с проблемой. Есть внешняя обработка, которая создает заказы покупателей в УТ 11.4. Код создания заказов расположен в процедуре модуля обработки. Организована возможность запуска процедуры создания заказа через форму обработки и по расписанию (возможности БСП для внешних обработок). При запуске процедуры из формы обработки в заказе проставляются цены, а при запуске по расписанию цены очищаются. Но код создания заказа один и тот же. С чем это может быть связано, может быть кто-нибудь сталкивался с подобным?
|
|||
1
unenu
25.07.23
✎
10:49
|
без кода что тут можно ответить?
|
|||
2
shuhard
25.07.23
✎
10:52
|
(0) ни о чём
|
|||
3
TSSV
25.07.23
✎
10:54
|
(1) код сейчас привести не могу. Но там ничего особенного - создается новый заказ, устанавливаются значения реквизитов, заполняется ТЧ Товары, в которой проставляется цена. Если запустить эту обработку руками, то все нормально, если настроить запуск по расписанию, заказы создаются с ценой 0. Может быть в правах дело, кто-нибудь ловил подобное?
|
|||
4
TSSV
25.07.23
✎
11:00
|
(1) Код.
Функция СоздатьЗаказКлиенту(СтрокиПоЗаказу, НомерЗаказа) Заказ = Документы.ЗаказКлиента.СоздатьДокумент(); Заказ.Дата = ТекущаяДата(); Заказ.Партнер = ЗаказКлиент; Заказ.Контрагент = ЗаказКонтрагент; Заказ.Организация = ЗаказСоглашение.Организация; Заказ.Соглашение = ЗаказСоглашение; Заказ.Валюта = ЗаказСоглашение.Валюта; Заказ.ГрафикОплаты = ЗаказСоглашение.ГрафикОплаты; Заказ.Склад = ЗаказСклад; Заказ.ЦенаВключаетНДС = Истина; Заказ.Статус = Перечисления.СтатусыЗаказовКлиентов.КОбеспечению; Заказ.ДатаСогласования = НачалоДня(ТекущаяДата()); Заказ.Согласован = Истина; Заказ.БанковскийСчет = Справочники.БанковскиеСчетаОрганизаций.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(Заказ.Организация); Заказ.ДатаОтгрузки = НачалоДня(ТекущаяДата()) + 3 * 24 * 60 * 60; Заказ.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС; Заказ.СкидкиРассчитаны = Истина; Заказ.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту; Заказ.ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоЗаказамНакладным; Заказ.СпособДоставки = Перечисления.СпособыДоставки.Самовывоз; Заказ.Приоритет = Справочники.Приоритеты.НайтиПоНаименованию("Средний"); Заказ.ПорядокОплаты = Перечисления.ПорядокОплатыПоСоглашениям.РасчетыВРубляхОплатаВРублях; Заказ.Комментарий = "Номер резерва " + НомерЗаказа; // Заполняем табличную часть Товары Для Каждого СтрокаПоЗаказу Из СтрокиПоЗаказу Цикл НоваяСтрока = Заказ.Товары.Добавить(); НоваяСтрока.Номенклатура = СтрокаПоЗаказу.Номенклатура; НоваяСтрока.Характеристика = СтрокаПоЗаказу.Характеристика; НоваяСтрока.Количество = СтрокаПоЗаказу.КоличествоРезерв; НоваяСтрока.КоличествоУпаковок = СтрокаПоЗаказу.КоличествоРезерв; //НоваяСтрока.ВидЦены = ВидЦеныMrp; НоваяСтрока.Цена = СтрокаПоЗаказу.Цена; НоваяСтрока.ВариантОбеспечения = Перечисления.ВариантыОбеспечения.СоСклада; НоваяСтрока.ДатаОтгрузки = ТекущаяДата() + 3 * 24 * 60 * 60; НоваяСтрока.Склад = ЗаказСклад; КонецЦикла; СтруктураПересчетаСуммы = Новый Структура; СтруктураПересчетаСуммы.Вставить("ЦенаВключаетНДС", Истина); СтруктураПараметровДействия = Новый Структура(); СтруктураПараметровДействия.Вставить("НалогообложениеНДС", Заказ.НалогообложениеНДС); СтруктураПараметровДействия.Вставить("Дата", Заказ.Дата); СтруктураДействий = Новый Структура; СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", СтруктураПараметровДействия); СтруктураДействий.Вставить("ЗаполнитьСтавкуНДСВозвратнойТары", Заказ.ВернутьМногооборотнуюТару); СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСумму"); КешированныеЗначения = Неопределено; ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Заказ.Товары, СтруктураДействий, КешированныеЗначения); Заказ.Записать(); // Доп. сведение Сайт ДопСведение = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Сайт"); МенеджерЗаписи = РегистрыСведений.ДополнительныеСведения.СоздатьМенеджерЗаписи(); МенеджерЗаписи.Объект = Заказ.Ссылка; МенеджерЗаписи.Свойство = ДопСведение; МенеджерЗаписи.Значение = "iis01.santehnika-online.ru"; МенеджерЗаписи.Записать(Истина); // Заполнение этапов оплаты ЭтапыОплатыСервер.ЗаполнитьЭтапыОплатыДокументаПродажи( Заказ, Ложь, Истина, Заказ.СуммаДокумента, 0); Попытка Заказ.Записать(РежимЗаписиДокумента.Проведение); Исключение // В случае, если зарезервировать не удалось, возвращается Неопределено Возврат Неопределено; КонецПопытки; Возврат Заказ.Ссылка; КонецФункции |
|||
5
shuhard
25.07.23
✎
11:07
|
(4) СтрокиПоЗаказу - что там ?
|
|||
6
TSSV
25.07.23
✎
11:16
|
(5) Массив строк служебной табличной части обработки с данными для заполнения ТЧ Товары.
|
|||
7
Мультук
25.07.23
✎
11:32
|
(6)
1) Можно писать всякое в ЖР, затем думать головой 2) Можно посмотреть код, который заполняет СтрокаПоЗаказу 3) Можно СтрокаПоЗаказу сериализовать и засунуть опять таки в ЖР // Заполняем табличную часть Товары Для Каждого СтрокаПоЗаказу Из СтрокиПоЗаказу Цикл НоваяСтрока = Заказ.Товары.Добавить(); НоваяСтрока.Номенклатура = СтрокаПоЗаказу.Номенклатура; НоваяСтрока.Характеристика = СтрокаПоЗаказу.Характеристика; НоваяСтрока.Количество = СтрокаПоЗаказу.КоличествоРезерв; НоваяСтрока.КоличествоУпаковок = СтрокаПоЗаказу.КоличествоРезерв; //НоваяСтрока.ВидЦены = ВидЦеныMrp; Если СтрокаПоЗаказу.Цена = 0 Тогда ЗаписьЖурналаРегистрации(,,, "Да как так то ???"); КонецЕсли; НоваяСтрока.Цена = СтрокаПоЗаказу.Цена; НоваяСтрока.ВариантОбеспечения = Перечисления.ВариантыОбеспечения.СоСклада; НоваяСтрока.ДатаОтгрузки = ТекущаяДата() + 3 * 24 * 60 * 60; НоваяСтрока.Склад = ЗаказСклад; КонецЦикла; |
|||
8
TSSV
25.07.23
✎
11:40
|
(7) Спасибо за идеи.
|
|||
9
banco
25.07.23
✎
12:30
|
(0) Из за прав может быть. Регламентное задание - имя пользователя
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |