|
В одном месте чек печатается, а в другом нет. Код одинаковый. | ☑ | ||
---|---|---|---|---|
0
DenisVich
02.08.17
✎
15:10
|
Вот код который не дает расхождения по сумме итога:
" Перем НомерЧека, НомерСмены; //Объявление, инициализация переменных. - Если ФискальныйРегистраторДоступен Тогда Если Вопрос("Оформить кассовый чек?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда НомерЧека = 0; НомерСмены = 0; НомерПоз = 0; ШапкаУслуги = Ложь; ШапкаТовары = Ложь; ИтоговаяСумма = 0; ФискальныйРегистраторОбъект.CheckType = 0; //ПечатьЧекаШтрих.ПечатьЗаголовка(); Если ЭтотОбъект.Товары.Количество()>0 Тогда Для Каждого СтрокаТаблицы Из ЭтотОбъект.Товары Цикл // ДокОбъект = Документы.Реализация.НайтиПоНомеру(СтрокаТаблицы.ОбъектОснование.Ссылка.Номер); НомерПоз = НомерПоз + 1; ИтоговаяСумма = ИтоговаяСумма + СтрокаТаблицы.Сумма; ПечатьЧекаШтрих.ПродажаЧекШтрих(НомерПоз,СтрокаТаблицы.Сумма,СтрокаТаблицы.Количество,СокрЛП(СтрокаТаблицы.Номенклатура)); КонецЦикла; КонецЕсли; Если ЭтотОбъект.Услуги.Количество()>0 Тогда Для Каждого СтрокаТаблицы Из ЭтотОбъект.Услуги Цикл // ДокОбъект = Документы.Реализация.НайтиПоНомеру(СтрокаТаблицы.ОбъектОснование.Ссылка.Номер); НомерПоз = НомерПоз + 1; ИтоговаяСумма = ИтоговаяСумма + СтрокаТаблицы.Сумма; ПечатьЧекаШтрих.ПродажаЧекШтрих(НомерПоз,СтрокаТаблицы.Сумма,СтрокаТаблицы.Количество,СокрЛП(СтрокаТаблицы.Номенклатура)); КонецЦикла; КонецЕсли; //ПечатьЧекаШтрих.ПечатьСтроки("СКИДКА ПО ЧЕКУ:",0); ПечатьЧекаШтрих.ЗакрытьЧек(ИтоговаяСумма,""); //Если ФискальныйРегистраторОбъект.ОткрытьЧек() Тогда ////Если ФискальныйРегистраторОбъект.ОткрытьЧек(ФискальныйРегистраторИдентификаторУстройства, 0, 0, 0, НомерЧека, НомерСмены) Тогда // //Если ФискальныйРегистраторОбъект.ЗакрытьЧек(ФискальныйРегистраторИдентификаторУстройства, Сумма, 0, 0) Тогда // // // // ФискальныйРегистраторОбъект.Summ1 = Сумма; // Если ФискальныйРегистраторОбъект.ЗакрытьЧек() Тогда // Иначе к // Сообщить("Не удалось закрыть кассовый чек!", СтатусСообщения.Внимание); // КонецЕсли; //Иначе // Сообщить("Не удалось создать кассовый чек!", СтатусСообщения.Внимание); //КонецЕсли; КонецЕсли; Иначе Сообщить("Фискальный регистратор недоступен.", СтатусСообщения.Информация); КонецЕсли; " Вот код который по суммам выдает расхождения: " Перем НомерЧека, НомерСмены; //Объявление, инициализация переменных. - Если ФискальныйРегистраторДоступен Тогда Если Вопрос("Оформить кассовый чек?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда НомерЧека = 0; НомерСмены = 0; НомерПоз = 0; ШапкаУслуги = Ложь; ШапкаТовары = Ложь; ИтоговаяСумма = 0; //ФискальныйРегистраторОбъект.CheckType = 0; //ПечатьЧекаШтрих.ПечатьЗаголовка(); Для Каждого СтрокаТаблицы Из ЭтотОбъект.Основание Цикл // ДокОбъект = Документы.Реализация.НайтиПоНомеру(СтрокаТаблицы.ОбъектОснование.Ссылка.Номер); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Реализация.Ссылка |ИЗ | Документ.Реализация КАК Реализация |ГДЕ | Реализация.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка",СтрокаТаблицы.ОбъектОснование.Ссылка); ШапкаСсылка = Запрос.Выполнить().Выбрать(); Если ШапкаСсылка.Количество()>0 Тогда ШапкаСсылка.Следующий(); ШапкаТовары = Истина; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТовары.Номенклатура, | РеализацияТовары.Количество, | РеализацияТовары.Цена, | РеализацияТовары.Сумма |ИЗ | Документ.Реализация.Товары КАК РеализацияТовары |ГДЕ | РеализацияТовары.Ссылка = &СсылкаДок | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | РеализацияУслуги.Номенклатура, | РеализацияУслуги.Количество, | РеализацияУслуги.Цена, | РеализацияУслуги.Сумма |ИЗ | Документ.Реализация.Услуги КАК РеализацияУслуги |ГДЕ | РеализацияУслуги.Ссылка = &СсылкаДок"; Запрос.УстановитьПараметр("СсылкаДок",ШапкаСсылка.Ссылка); НоменклатураКолвоЦена = Запрос.Выполнить().Выбрать(); Если НоменклатураКолвоЦена.Количество()>0 Тогда Пока НоменклатураКолвоЦена.Следующий() Цикл НомерПоз = НомерПоз + 1; ИтоговаяСумма = ИтоговаяСумма + НоменклатураКолвоЦена.Сумма; //Сообщить(Строка(НомерПоз)+". "+Строка(НоменклатураКолвоЦена.Сумма)+Строка(НоменклатураКолвоЦена.Количество)+СокрЛП(НоменклатураКолвоЦена.Номенклатура)); ПечатьЧекаШтрих.ПродажаЧекШтрих(НомерПоз,НоменклатураКолвоЦена.Сумма,НоменклатураКолвоЦена.Количество,СокрЛП(НоменклатураКолвоЦена.Номенклатура)); КонецЦикла; КонецЕсли; КонецЕсли; КонецЦикла; //ПечатьЧекаШтрих.ПечатьСтроки("СКИДКА ПО ЧЕКУ:",0); Если ШапкаТовары Тогда ПечатьЧекаШтрих.ЗакрытьЧек(ИтоговаяСумма,""); //Сообщить("Итоговая сумма"+Строка(ИтоговаяСумма)); КонецЕсли; //Если ФискальныйРегистраторОбъект.ОткрытьЧек() Тогда ////Если ФискальныйРегистраторОбъект.ОткрытьЧек(ФискальныйРегистраторИдентификаторУстройства, 0, 0, 0, НомерЧека, НомерСмены) Тогда // //Если ФискальныйРегистраторОбъект.ЗакрытьЧек(ФискальныйРегистраторИдентификаторУстройства, Сумма, 0, 0) Тогда // // // // ФискальныйРегистраторОбъект.Summ1 = Сумма; // Если ФискальныйРегистраторОбъект.ЗакрытьЧек() Тогда // Иначе к // Сообщить("Не удалось закрыть кассовый чек!", СтатусСообщения.Внимание); // КонецЕсли; //Иначе // Сообщить("Не удалось создать кассовый чек!", СтатусСообщения.Внимание); //КонецЕсли; КонецЕсли; Иначе Сообщить("Фискальный регистратор недоступен.", СтатусСообщения.Информация); КонецЕсли;" |
|||
1
DenisVich
02.08.17
✎
15:10
|
Как это вылечить. Не знаю как.
|
|||
2
Волшебник
модератор
02.08.17
✎
15:11
|
Контекст или параметры разные
|
|||
3
Numerus Mikhail
02.08.17
✎
15:12
|
Скопируйте код, которй работает в то место, где не работает
|
|||
4
DenisVich
02.08.17
✎
15:18
|
Он везде работает
|
|||
5
DenisVich
02.08.17
✎
15:18
|
Выводил через сообщить.
|
|||
6
DenisVich
02.08.17
✎
15:19
|
ПечатьЧекаШтрих.ЗакрытьЧек(ИтоговаяСумма,"");
|
|||
7
DenisVich
02.08.17
✎
15:19
|
Закрытие чека не происходит.
|
|||
8
DenisVich
02.08.17
✎
15:20
|
Хотя суммы совпадают. Накопления в цикле происходят.
|
|||
9
DenisVich
02.08.17
✎
15:23
|
В Сообщить("Итоговая сумма"+Строка(ИтоговаяСумма)) все доходит. Итог правильный.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |