Имя: Пароль:
1C
1С v8
Ошибка при попытке распечатать чек в "Отражении зарплаты в бухучете"
,
0 anton38
 
12.05.22
06:16
Добрый день, прошу подсказать,
1С:Предприятие 8.3 (8.3.21.1302)
Бухгалтерия предприятия, редакция 3.0 (3.0.111.25), типовая стоит на поддержке.
SQL
проблема следующая:
После обновления начала появляться ошибка при попытке распечатать чек в "Отражении зарплаты в бухучете":

Ошибка при подготовке группы чеков:
Недопустимое значение параметра (параметр номер '2')
{ОбщийМодуль.ПечатьФискальныхДокументовКлиент.Модуль(745)}:ВызватьИсключение Текст;
{ОбщийМодуль.ПечатьФискальныхДокументовКлиент.Модуль(716)}:ПоказатьОшибкуФормированияГруппыЧеков(ДлительнаяОперация);
{ОбщаяФорма.ДлительнаяОперация.Форма(119)}:Закрыть(РезультатВыполнения(Задание));  

В журнале нашел следующее сообщение:
Событие: Фоновое задание. Ошибка выполнения
Коментарий:
Ошибка при вызове метода контекста (ЗаполнитьЗначенияСвойств)
{ОбщийМодуль.ПечатьФискальныхДокументов.Модуль(37)}:ЗаполнитьЗначенияСвойств(Реквизиты, ДанныеОплатыСертификатНСПК);
{ОбщийМодуль.ПечатьФискальныхДокументов.Модуль(1043)}:МассивЧеков = ПечатьФискальныхДокументов.СобратьДанныеЧеков(
{(1)}:ПечатьФискальныхДокументов.ПечатьЧековНаУдержанияИзЗарплаты(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5263)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1124)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1114)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

по причине:
Недопустимое значение параметра (параметр номер '2')
по причине:
Недопустимое значение параметра (параметр номер '2')

Думал что выйдет новое обновление и это исправится, но нет.
Делал полное тестирование базы но это тоже не помогло.

Подскажите пожалуйста на какой параметр номер 2 он ругается.
1 2S
 
12.05.22
06:18
(0) по-моему баг, попробуй заремить эту строку заполнитьзначениясвойств в расширении.
2 anton38
 
12.05.22
06:36
Спасибо, сейчас попробую, о результате отпишусь:)
3 Dmitry1c
 
12.05.22
07:07
Очень любопытно, а что у вас за чек в этом документе?
4 anton38
 
12.05.22
07:43
R (1) К сожалению не помогло, ошибка таже
5 anton38
 
12.05.22
07:43
(3) Удержание и ЗП
6 anton38
 
12.05.22
07:44
(3) Удержание из ЗП
7 2S
 
12.05.22
07:48
(4) мне помогло, но это костыль, а не руководство к действию.
Видимо не то заремили.
8 anton38
 
12.05.22
07:55
(7) Ну я ОбщийМодуль.ПечатьФискальныхДокументов вынес в расширение и в него же добавил
&Вместо("СобратьДанныеЧеков")
Функция РасшПечатьЧеков_СобратьДанныеЧеков

Скопировал весь код из Функция СобратьДанныеЧеков
и там заремил
//ЗаполнитьЗначенияСвойств(Реквизиты, РеквизитПечатиЧека);
//ЗаполнитьЗначенияСвойств(Реквизиты, ДанныеОплатыСертификатНСПК);

Я только начал изучать 1с и скорее всего туплю
9 2S
 
12.05.22
07:58
только это заремь
//ЗаполнитьЗначенияСвойств(Реквизиты, ДанныеОплатыСертификатНСПК);
10 anton38
 
12.05.22
07:59
(9) Пробовал, не помогло.

Возможно я неправильно вынес в расширение?
11 anton38
 
12.05.22
08:04
Вот что у меня в расширении:



&Вместо("СобратьДанныеЧеков")
Функция РасшПечатьЧеков_СобратьДанныеЧеков(ДокументСсылка, НомерСекции = 0, ВерсияФормата, АдресУстановкиККТ, ПараметрыОбработчика = Неопределено, СообщениеОбОшибке = "", ИдентификаторФормы = Неопределено, АдресХранилищаПечатьЧека = Неопределено, ДанныеОплатыСертификатНСПК = Неопределено) Экспорт
    
    МассивЧеков = Новый Массив;
    
    Если ПараметрыОбработчика = Неопределено Тогда
        ПараметрыОбработчика = Новый Структура;
    КонецЕсли;
    
    ПараметрыПечатиЧека = Неопределено;
    
    // Параметры печати чека могли быть получены ранее
    Если ЭтоАдресВременногоХранилища(АдресХранилищаПечатьЧека) Тогда
        ПараметрыПечатиЧека = ПолучитьИзВременногоХранилища(АдресХранилищаПечатьЧека);
    КонецЕсли;
    
    Если НЕ ЗначениеЗаполнено(ПараметрыПечатиЧека) Тогда
        ПараметрыПечатиЧека = ПодготовитьПараметрыПечатиЧека(ДокументСсылка, ПараметрыОбработчика, СообщениеОбОшибке);
    КонецЕсли;
    
    Если ЗначениеЗаполнено(СообщениеОбОшибке) Тогда
        Возврат МассивЧеков;
    КонецЕсли;
    
    РеквизитыПечатиЧека = ПараметрыПечатиЧека.РеквизитыПечатиЧека;
    Если РеквизитыПечатиЧека.Количество() = 0 Тогда
        Возврат МассивЧеков;
    КонецЕсли;
    
    Для Каждого РеквизитПечатиЧека ИЗ РеквизитыПечатиЧека Цикл
        
        Реквизиты = НовыйРеквизитыПечатиЧека();
        
        ЗаполнитьЗначенияСвойств(Реквизиты, РеквизитПечатиЧека);
        //ЗаполнитьЗначенияСвойств(Реквизиты, ДанныеОплатыСертификатНСПК);
        
        Если НЕ ПараметрыПечатиЧека.Свойство("ШтрихкодыУпаковок") Тогда
            // Чек не содержит маркируемую продукцию
        ИначеЕсли НЕ ОбработатьМаркированнуюПродукцию(
                ПараметрыПечатиЧека.ОплачиваемаяНоменклатура,
                ПараметрыПечатиЧека.ШтрихкодыУпаковок, Реквизиты,
                ИдентификаторФормы, СообщениеОбОшибке) Тогда
                
            Возврат МассивЧеков;
        КонецЕсли;
        
        ПрименяетсяУСНПатент                    = УчетнаяПолитика.ПрименяетсяУСНПатент(Реквизиты.Организация, Реквизиты.Дата);
        ПрименяетсяЕНВД                         = УчетнаяПолитика.ПлательщикЕНВД(Реквизиты.Организация, Реквизиты.Дата);
        ПрименяетсяОсобыйПорядокНалогообложения = УчетнаяПолитика.ПрименяетсяОсобыйПорядокНалогообложения(Реквизиты.Организация, Реквизиты.Дата);
        
        ПрименяетсяТолькоПатент                 = ПрименяетсяОсобыйПорядокНалогообложения И ПрименяетсяУСНПатент;
        ПрименяетсяТолькоЕНВД                   = ПрименяетсяОсобыйПорядокНалогообложения И ПрименяетсяЕНВД;
        
        Если ПрименяетсяТолькоПатент ИЛИ ЗначениеЗаполнено(Реквизиты.Патент) Тогда
            НалоговыйРежим = Перечисления.ТипыСистемНалогообложенияККТ.Патент;
        ИначеЕсли ПрименяетсяТолькоЕНВД Тогда
            НалоговыйРежим = Перечисления.ТипыСистемНалогообложенияККТ.ЕНВД;
        ИначеЕсли УчетнаяПолитика.ПрименяетсяУСНДоходы(Реквизиты.Организация, Реквизиты.Дата) Тогда
            НалоговыйРежим = Перечисления.ТипыСистемНалогообложенияККТ.УСНДоход;
        ИначеЕсли УчетнаяПолитика.ПрименяетсяУСНДоходыМинусРасходы(Реквизиты.Организация, Реквизиты.Дата) Тогда
            НалоговыйРежим = Перечисления.ТипыСистемНалогообложенияККТ.УСНДоходРасход;
        Иначе
            НалоговыйРежим = Перечисления.ТипыСистемНалогообложенияККТ.ОСН;
        КонецЕсли;
        
        Реквизиты.Вставить("НалоговыйРежим", НалоговыйРежим);
        Реквизиты.Вставить("НомерСекции",    НомерСекции);
        
        Если ПараметрыОбработчика.Свойство("ТипОбъекта") Тогда
            Если ПараметрыОбработчика.ТипОбъекта = "ОбщийМодуль" Тогда
                МодульОбработчика = ОбщегоНазначения.ОбщийМодуль(ПараметрыОбработчика.ИмяОбъекта);
            Иначе // документ
                МодульОбработчика = Документы[ПараметрыОбработчика.ИмяОбъекта];
            КонецЕсли;
        Иначе // документ по ссылке
            МодульОбработчика = Документы[ДокументСсылка.Метаданные().Имя];
        КонецЕсли;
        
        Реквизиты.Вставить("НаименованиеВСтрокеЧека", МодульОбработчика.НаименованиеВСтрокеЧека(Реквизиты));
        
        ПараметрыОперацииФискализацииЧека = ПараметрыОперацииФискализацииЧека(Реквизиты, ПараметрыПечатиЧека, ВерсияФормата, АдресУстановкиККТ, СообщениеОбОшибке);
        Если ЗначениеЗаполнено(ПараметрыОперацииФискализацииЧека) Тогда
            МассивЧеков.Добавить(ПараметрыОперацииФискализацииЧека);
        Иначе
            Возврат МассивЧеков;
        КонецЕсли;
        
    КонецЦикла;

    Возврат МассивЧеков;
КонецФункции
12 hhhh
 
12.05.22
08:32
(11) наверно у тебя ДанныеОплатыСертификатНСПК = Неопределено

то есть ошибка не здесь, а где-то выше по тексту.
13 anton38
 
12.05.22
09:09
(12) Эх, еще бы понять где (
Но все равно спасибо! Буд и искать.
14 Фрэнки
 
12.05.22
09:11
(13) А из других мест Чек печатать получается?
Вообще, по характеру ошибки можно предположить, что любой чек не получится распечатать
15 anton38
 
12.05.22
09:22
(14) Когда сотруднику выдается спецодежда чек на Кредит печатается, а уже когда нужно сделать реализацию (удержать и ЗП), возникает вот эта ошибка.
16 anton38
 
12.05.22
09:52
Есть подозрение что я зря уже неделю мучаюсь.
Проверил сейчас какие есть исправления и среде них есть EF_10238877 (При печати чека на удержание из заработной платы выдается сообщение об ошибке).
Попробую его поставить и отпишусь решило это мою проблему или нет.
17 anton38
 
12.05.22
09:58
(16) Проблема устранена, чеки печатаются.
Всем кто откликнулся огромное спасибо!!!
18 anton38
 
12.05.22
10:37
(1) Судя по исправлению вы были очень близки к решению.

Нужно было строчку
ЗаполнитьЗначенияСвойств(Реквизиты, ДанныеОплатыСертификатНСПК);

Заменить на
Если ДанныеОплатыСертификатНСПК <> Неопределено Тогда
            ЗаполнитьЗначенияСвойств(Реквизиты, ДанныеОплатыСертификатНСПК);
        КонецЕсли;