|
Не заполняется значение ПКО.Касса = | ☑ | ||
---|---|---|---|---|
0
vaflivafli3
17.07.23
✎
10:13
|
Работаю в конфигурации 1С:Комплексная автоматизация 2 (2.5.12.60)
Пишу в расширении конфигурации, проблема в том что последнее нужное значение не заполняется, проверял запросы в консоли, все выводит нормально. Может как-то неправильно передаю значение, не могу понять в чем ошибка. &После ("ВыполнитьАвтоматическуюИнкассациюДС") Процедура Автоматическое_СозданиеПКО_ПриЗакрытииСмены(КассаККМ, ОшибкаПриСнятииZОтчетам) Экспорт // Запрос для поиска последней выемки денежных средств Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ВыемкаДенежныхСредствИзКассыККМ.Ссылка КАК Ссылка |ИЗ | Документ.ВыемкаДенежныхСредствИзКассыККМ КАК ВыемкаДенежныхСредствИзКассыККМ |ГДЕ | ВыемкаДенежныхСредствИзКассыККМ.Проведен |УПОРЯДОЧИТЬ ПО | Дата УБЫВ"; // Выполняем запрос и получаем ссылку на последнюю проведенную выемку РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Возврат; КонецЕсли; Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); ПоследняяВыемка = Выборка.Ссылка; Если ЗначениеЗаполнено(ПоследняяВыемка) Тогда // Создаем объект ПКО и заполняем ПКО на основании последней выемки ПКО = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент(); ПКО.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствИзКассыККМ; ПКО.ДокументОснование = ПоследняяВыемка.Ссылка; ПКО.КассаККМ = ПоследняяВыемка.КассаККМ; ПКО.Организация = ПоследняяВыемка.Организация; ПКО.Дата = ТекущаяДата(); ПКО.СуммаДокумента = ПоследняяВыемка.СуммаДокумента; ПКО.Валюта = ПоследняяВыемка.Валюта; ПКО.Кассир = ПоследняяВыемка.Кассир; // Запрос для получения ссылки на кассу ЗапросФискальноеУстройство = Новый Запрос; ЗапросФискальноеУстройство.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | КассоваяСмена.ФискальноеУстройство КАК ФискальноеУстройство |ИЗ | Документ.КассоваяСмена КАК КассоваяСмена |ГДЕ | КассоваяСмена.Проведен | |УПОРЯДОЧИТЬ ПО | КассоваяСмена.Дата УБЫВ"; ЗапросФискальноеУстройство.УстановитьПараметр("Ссылка", ПоследняяВыемка); РезультатФискальноеУстройство = ЗапросФискальноеУстройство.Выполнить(); Если НЕ РезультатФискальноеУстройство.Пустой() Тогда ВыборкаФискальноеУстройство = РезультатФискальноеУстройство.Выбрать(); Если ВыборкаФискальноеУстройство.Следующий() Тогда ФискальноеУстройство = ВыборкаФискальноеУстройство.ФискальноеУстройство; КонецЕсли; КонецЕсли; Если ЗначениеЗаполнено(ФискальноеУстройство) Тогда // Получение кассы по значению фискального устройства ЗапросКасса = Новый Запрос; ЗапросКасса.Текст = "ВЫБРАТЬ | НастройкиРМК.Кассы.Касса КАК Касса |ИЗ | Справочник.НастройкиРМК КАК НастройкиРМК |ГДЕ | НастройкиРМК.Кассы.ПодключаемоеОборудование.Наименование = &ФискальноеУстройство"; ЗапросКасса.УстановитьПараметр("ФискальноеУстройство", ФискальноеУстройство); РезультатКасса = ЗапросКасса.Выполнить(); Если НЕ РезультатКасса.Пустой() Тогда ВыборкаКасса = РезультатКасса.Выбрать(); Если ВыборкаКасса.Следующий() Тогда ПКО.Касса = ВыборкаКасса.Выбрать("Касса"); КонецЕсли; Иначе Сообщить("РезультатКасса не содержит записей."); КонецЕсли; // Запись и проведение ПКО ПКО.Записать(РежимЗаписиДокумента.Проведение); Сообщить("ПКО успешно создан на основе последней выемки денежных средств."); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
1
Гипервизор
17.07.23
✎
10:16
|
Зачем 2 раза выбирать? ПКО.Касса = ВыборкаКасса.Касса;
|
|||
2
vaflivafli3
17.07.23
✎
10:19
|
исправил, но ошибка та же..
Ошибка при вызове метода контекста (Записать) {АвтоматическоеСоздПКО ОбщийМодуль.РозничныеПродажи.Модуль(82)}:ПКО.Записать(РежимЗаписиДокумента.Проведение); {ОбщийМодуль.РозничныеПродажи.Модуль(3738)}:ИнкассацияВыполнена = ВыполнитьАвтоматическуюИнкассациюДС(КассаККМ, ОшибкаПриСнятииZОтчета); {ОбщийМодуль.РозничныеПродажиВызовСервера.Модуль(31)}:Возврат РозничныеПродажи.ВыполнитьОперациюЗакрытияКассовойСмены(Объект, ОшибкаПриСнятииZОтчета, ОписаниеОшибки); по причине: Ошибка при выполнении обработчика - 'ОбработкаПроведения' по причине: Ошибка при вызове метода контекста (Записать) по причине: Запись не верна! Значение поля "Касса" не может быть пустым! (Регистр накопления: Денежные средства (наличные); Номер строки: 1) |
|||
3
shuhard
17.07.23
✎
10:19
|
(0) не туда пишешь, нужно в ТЧ Расшифровка платежа
|
|||
4
vaflivafli3
17.07.23
✎
10:32
|
табличную часть ПКО? (3)
|
|||
5
Гипервизор
17.07.23
✎
10:37
|
(2) ВыборкаКасса = РезультатКасса.Выбрать();
ВыборкаКасса.Следующий(); ПКО.Касса = ВыборкаКасса.Касса; Посмотрите отладчиком, что у вас в выборке. Ну в крайнем случае добавьте на время Сообщить(ВыборкаКасса.Касса). |
|||
6
vaflivafli3
17.07.23
✎
11:39
|
(5) Выборка показывает ошибку чтения значения переменной Кассы
|
|||
7
Гипервизор
17.07.23
✎
12:05
|
(6) РезультатКасса у вас не пустой? Тогда смотрите выше, может РезультатФискальноеУстройство пустой. Вообще пройдите ваш код отладкой по шагам и смотрите что в переменных.
|
|||
8
vaflivafli3
17.07.23
✎
12:19
|
(7) Прошелся, везде значения заполнены, кроме ВыборкаКасса, буду исправлять, спасибо за помощь.
|
|||
9
vaflivafli3
18.07.23
✎
11:26
|
(7) В итоге так и не получилось получить значение для ПКО.Касса, хотя результат не пустой, а вот на выборку ругается, не понимаю в чем проблема...
Пробовал через РезультатКасса = ЗапросКасса.Выполнить().Выгрузить(), но тоже не вышло. |
|||
10
Гипервизор
18.07.23
✎
11:37
|
(9) Сильно ругается? Как именно?
|
|||
11
vaflivafli3
18.07.23
✎
11:44
|
(10) В отладке пишет об ошибке чтения значения, до этого менял код пару раз, стоял тип - Неопределено или же касса закрывалась без ошибки, но ПКО не создавался.
Текущий код: ЗапросКасса = Новый Запрос; ЗапросКасса.Текст = "ВЫБРАТЬ | НастройкиРМК.Кассы.Касса КАК Касса |ИЗ | Справочник.НастройкиРМК КАК НастройкиРМК |ГДЕ | НастройкиРМК.Кассы.ПодключаемоеОборудование = &ФискальноеУстройство"; ЗапросКасса.УстановитьПараметр("ФискальноеУстройство", ФискальноеУстройство); РезультатКасса = ЗапросКасса.Выполнить(); Если Не РезультатКасса.Пустой() Тогда ВыборкаКасса = РезультатКасса.Выбрать(); Если ВыборкаКасса.Следующий() Тогда ПКО.Касса = ВыборкаКасса.Касса; Иначе Сообщить("Касса не найдена."); Возврат; КонецЕсли; |
|||
12
Гипервизор
18.07.23
✎
11:50
|
(11) Пишет об ошибке чтения какого именно значения? В (5) код несколько отличается. Хорошо в партизана играть, что из вас всё вытягивать надо?
Какого типа в отладке ВыборкаКасса после ВыборкаКасса.Следующий()? Без всяких Если. Что после этого в отладке показывает ВыборкаКасса.Касса? |
|||
13
vaflivafli3
18.07.23
✎
12:10
|
(12) ничего не показывает)
|
|||
14
vaflivafli3
18.07.23
✎
12:12
|
(12) на почту вам скрин отправил
|
|||
15
Гипервизор
18.07.23
✎
12:53
|
(14) Чот фигня у вас какая-то: ВыборкаКасса имеет тип ВыборкаИзРезультатаЗапроса, а ВыборкаКасса.Касса - РезультатЗапроса.
Попробуйте этот запрос отдельно в консоли запросов выполнить. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |