![]() |
|
Преобразование значения к типу Дата не может быть выполнено при создании документа | ☑ | ||
---|---|---|---|---|
0
Gill
17.10.22
✎
15:18
|
Всем привет!
ERP 2.5.8.267 При попытке создания документа из обработки (Меню "Финансовый результат и контроллинг" - "Распределение РБП" - "Распределить расходы") вылетает с ошибкой, при этом некоторые статьи РБП формируются без проблем. Сравнение данных в соответствующих элементах справочника "Статьи РБП" результата не дали. Ошибка при вызове метода контекста (ОткрытьФорму) {Документ.РаспределениеРасходовБудущихПериодов.Форма.ФормаСпискаДокументов.Форма(284)}: ОткрытьФорму("Документ.РаспределениеРасходовБудущихПериодов.ФормаОбъекта", СтруктураПараметры, Элементы.Список); по причине: Ошибка при выполнении обработчика - 'ОбработкаЗаполнения' по причине: {Документ.РаспределениеРасходовБудущихПериодов.МодульМенеджера(290)}: Преобразование значения к типу Дата не может быть выполнено ОткрытьФорму("Документ.РаспределениеРасходовБудущихПериодов.ФормаОбъекта", СтруктураПараметры, Элементы.Список); Отладчик закинул сюда ТУТ : Функция ПолучитьДатуВозникновенияРБП(ДанныеЗаполнения) Экспорт ТекстЗапроса = " |ВЫБРАТЬ | МАКСИМУМ(ДатыРасходов.Период) КАК Период |ИЗ | (ВЫБРАТЬ | ПрочиеРасходы.Период КАК Период | ИЗ | РегистрНакопления.ПрочиеРасходы КАК ПрочиеРасходы | ГДЕ | ПрочиеРасходы.Организация = &Организация | И ПрочиеРасходы.Подразделение = &Подразделение | И ПрочиеРасходы.НаправлениеДеятельности = &НаправлениеДеятельности | И ПрочиеРасходы.СтатьяРасходов = &СтатьяРасходов | И ПрочиеРасходы.АналитикаРасходов = &АналитикаРасходов | И ПрочиеРасходы.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | И ПрочиеРасходы.Активность | И ПрочиеРасходы.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Период, МЕСЯЦ) | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | СебестоимостьТоваров.Период | ИЗ | РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров | ГДЕ | СебестоимостьТоваров.Организация = &Организация | И СебестоимостьТоваров.Подразделение = &Подразделение | И СебестоимостьТоваров.КорНаправлениеДеятельности = &НаправлениеДеятельности | И СебестоимостьТоваров.СтатьяРасходовСписания = &СтатьяРасходов | И СебестоимостьТоваров.АналитикаРасходов = &АналитикаРасходов | И СебестоимостьТоваров.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) | И СебестоимостьТоваров.Активность | И СебестоимостьТоваров.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Период, МЕСЯЦ) | И СебестоимостьТоваров.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)) КАК ДатыРасходов"; //++ НЕ УТ Если НЕ ЗначениеЗаполнено(ДанныеЗаполнения.СтатьяРасходов) И ТипЗнч(ДанныеЗаполнения.АналитикаРасходов) = Тип("СправочникСсылка.ОбъектыВозникновенияЗатрат") Тогда ТекстЗапроса = " |ВЫБРАТЬ | МАКСИМУМ(ДатыРасходов.Период) КАК Период |ИЗ | (ВЫБРАТЬ | ПрочиеРасходы.Период КАК Период | ИЗ | РегистрНакопления.ПрочиеРасходы КАК ПрочиеРасходы | ГДЕ | ПрочиеРасходы.Организация = &Организация | И ПрочиеРасходы.Подразделение = &Подразделение | И ПрочиеРасходы.АналитикаРасходов = &АналитикаРасходов | И ПрочиеРасходы.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | И ПрочиеРасходы.Активность | И ПрочиеРасходы.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Период, МЕСЯЦ) | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | СебестоимостьТоваров.Период | ИЗ | РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров | ГДЕ | СебестоимостьТоваров.Организация = &Организация | И СебестоимостьТоваров.Подразделение = &Подразделение | И СебестоимостьТоваров.АналитикаРасходов = &АналитикаРасходов | И СебестоимостьТоваров.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) | И СебестоимостьТоваров.Активность | И СебестоимостьТоваров.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Период, МЕСЯЦ) | И СебестоимостьТоваров.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)) КАК ДатыРасходов"; КонецЕсли; //-- НЕ УТ Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; ОбщегоНазначенияУТ.УстановитьПараметрыЗапроса(Запрос, ДанныеЗаполнения); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Если Выборка.Следующий() Тогда Возврат НачалоДня(Выборка.Период); //ВОТ ЗДЕСЬ ВЫЛЕТАЕТ КонецЕсли; Возврат КонецМесяца(ДанныеЗаполнения.Период); КонецФункции |
|||
1
Мультук
гуру
17.10.22
✎
15:41
|
(0)
Ну и что показывает в отладчике Выборка.Период NULL ? |
|||
2
alarm2020
17.10.22
✎
15:42
|
Классный запрос!
|
|||
3
Gill
17.10.22
✎
15:43
|
(1)
Выражение Значение Тип Выборка.Период Null |
|||
4
Gill
17.10.22
✎
15:44
|
(2) Это из типовой
|
|||
5
kostyan29
17.10.22
✎
15:49
|
Выдернуть в отладчике ТекстЗапроса. Вставить в Консоль запросов. Посмотреть ДанныеЗаполнения, и из них заполнить все параметры в консоли запросов.
Запустить запрос на выполнение и посмотреть, что там происходит, почему возвращается null |
|||
6
alarm2020
17.10.22
✎
15:50
|
(4) Я понимаю, что из типовой. Это вовсе не мешает ему быть классным
|
|||
7
alarm2020
17.10.22
✎
15:51
|
(5) Там происходит классный запрос
|
|||
8
Gill
17.10.22
✎
16:05
|
(5) Делал.
Записей в результате 1, Период пусто... |
|||
9
alarm2020
17.10.22
✎
16:49
|
(8) Неудивительно. МАКСИМУМ от пусто и должен возвращать пусто
|
|||
10
Gill
17.10.22
✎
16:56
|
так всё-таки, куда рыть дальше?
|
|||
11
alarm2020
17.10.22
✎
17:09
|
(10) Зачем еще куда-то рыть?
|
|||
12
Gill
17.10.22
✎
19:16
|
(11) в чем тут подвох? Подскажите
|
|||
13
alarm2020
17.10.22
✎
19:31
|
(12) Ну мы же выяснили уже. Кривой запрос в типовой. Не будет у тебя работать распределение
|
|||
14
Gill
18.10.22
✎
08:39
|
(13) а почему работает в зависимости от выбора конкретной статьи расхода? )
|
|||
15
mikecool
18.10.22
✎
08:55
|
(14) все уже догадались
|
|||
16
Мультук
гуру
18.10.22
✎
08:56
|
(14)
Тут два варианта 1) 1С налажала в коде. Это бывает 2) У вас какая-то ерунда в исходных данных >>а почему работает в зависимости от выбора конкретной статьи расхода? ) Потому что по одной статье движения таки есть, а по другой нужных движений по указанным отборам таки нет? |
|||
17
Gill
18.10.22
✎
09:03
|
(17) дело в том, что я проверил оба регистра, и удивительно, что по 2 проверяемым статьям (одна из которой срабатывает) записи есть только одном регистре (а именно "ПрочиеРасходы").Таким образом я убедился в наличии данных.
|
|||
18
Gill
18.10.22
✎
09:05
|
(16) Про "ерунду" в исходных данных, имеется ввиду в ДанныеЗаполнения?
|
|||
19
Мультук
гуру
18.10.22
✎
09:06
|
(17)
Хорошо, статья есть, а остальные отборы ? P.S. | ГДЕ | ПрочиеРасходы.Организация = &Организация | И ПрочиеРасходы.Подразделение = &Подразделение | И ПрочиеРасходы.АналитикаРасходов = &АналитикаРасходов | И ПрочиеРасходы.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | И ПрочиеРасходы.Активность | И ПрочиеРасходы.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Период, МЕСЯЦ) |
|||
20
Gill
18.10.22
✎
09:24
|
(19) вот записи по 2 статьям
https://disk.yandex.ru/i/H1PR3__h6Sn0fA https://disk.yandex.ru/i/GfH3aqFUb4kkhw |
|||
21
alarm2020
18.10.22
✎
10:41
|
(20) НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)
|
|||
22
Gill
18.10.22
✎
11:42
|
(21) вот скрины из рабочей базы, записи идентичны, тем не менее такая же история
https://disk.yandex.ru/i/sSP3yBBObg4lkg https://disk.yandex.ru/i/7oPjaEtbEFqSiQ |
|||
23
Smallrat
18.10.22
✎
12:36
|
(5) ОбщегоНазначения.ЗапросВСтрокуXML(Запрос)
В консоли запросов в меню "Ещё" есть команда "Заполнить из XML" |
|||
24
kostyan29
18.10.22
✎
13:11
|
(23) Спасибо большое, не знал!
|
|||
25
Gill
18.10.22
✎
13:12
|
(23) спасибо за способ, но результаты запроса идентичны.
Я не могу понять логику работы его в разрезе статей при одинаковых (с точки зрения заполнения) данных в регистре накопления. |
|||
26
Gill
18.10.22
✎
13:13
|
(24) аналогично)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |