1С Розница 2.2.6.33 ПРи пробиттии чека пишет ошибку "Индекс находица за границами массива" как решить подскажите, пожалуйста?

1. user593840_metall_14 07.12.17 18:36 Сейчас в теме
1С Розница 2.2.6.33
ФР АТОЛ 11 Ф работает как чекопечатающая машинка(принтер чеков) активизирован ЕНВД
В 1С в подключаемое оборудование добавлен через ККТ с передачей данных тест проходит успешно

ПРи пробиттии чека пишет ошибку "Индекс находица за границами массива" как решить подскажите, пожалуйста?
Прикрепленные файлы:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. lenochka-semicova 08.12.17 12:58 Сейчас в теме
Есть подобный вопрос на партнерке
https://partners.v8.1c.ru/forum/t/1655979/m/1669189
Кто-то ответил, что надо
В ДТО 8.15.3 утилитой регистрации нужно "Активировать память ПД". Потом поставить 8.11, тогда будет работать как ФР (9.х не пробовал, может тоже будет работать). Только непонятно после активации памяти ПД потом с ФН будет работать или надо перепрошивать.

Но результатов там не озвучили.
3. user593840_metall_14 12.12.17 12:12 Сейчас в теме
(2) DTO_8_11_02_00_Full установил прописал настройки в 1С в подключаемом оборудовании указал "ККТ с передачей данных" тест прошел успешно драйвер подтянулся 8.11.02 но при пробитии чека все равно выдает ошибку "Индекс находится за границами массива"
4. lenochka-semicova 13.12.17 10:45 Сейчас в теме
Судя по сообщениями на партнерке
https://partners.v8.1c.ru/forum/t/1655979/m/1669189
проблема в том, что падает в месте
ЗаводскойНомерФН = ВыходныеПараметры[5];

Это в разделе
// Получение текущего состояние ККТ с ФН.
					РезультатКоманды = ОбработчикДрайвераМодуль.ВыполнитьКоманду("GetCurrentStatus", ВходныеПараметры, ВыходныеПараметры,
						ОбъектДрайвера, ПодключенноеУстройство.Параметры, ПодключенноеУстройство.ПараметрыПодключения);
					Если РезультатКоманды Тогда
						// Увеличиваем инкремент номера последнего чека.
						ВыходныеПараметры[1]    = ВыходныеПараметры[1] + 1;
						ЗаводскойНомерФН        = ВыходныеПараметры[5];


но при этом в 2.2.7 в некоторых местах сейчас прописан такой код
ЗаводскойНомерФН = ?(ВыходныеПараметры.Количество() > 5, ВыходныеПараметры[5], Неопределено);
Но не во всех местах - конкретно в этом месте - нету.

Т.е. дело в том, что в зависимости от прошивки и версии драйвера количество возвращаемых от аппарата параметров разное - одни возвращают заводской номер, другие нет.
Соответственно, либо менять код самим - вполне возможно, что только этой правки будет не достаточно, либо связаться с производителем и выяснить - какие версии драйвера/прошивки точно вернут заводской номер шестым параметром массива выходных параметров после выполнения метода GetCurrentStatus.
5. acer85 06.03.18 17:33 Сейчас в теме
Lenochka Semicova
Можно подробней как исправить ошибку
(При побитии чека пишет ошибку "Индекс находица за границами массива")
6. acer85 22.03.18 20:02 Сейчас в теме
Прописал
		Иначе
				ЗаводскойНомерФН = Неопределено;
				
				Если ПодключенноеУстройство.ТипОборудованияИмя = "ПринтерЧеков" Тогда
					ВыходныеПараметры = Новый Массив();
					ВыходныеПараметры.Добавить(ОбщиеПараметры.НомерСмены);
					ВыходныеПараметры.Добавить(ОбщиеПараметры.НомерЧека);
					Результат = Истина;
				ИначеЕсли ПодключенноеУстройство.ТипОборудованияИмя = "ККТ" Тогда
					ВремВходныеПараметры = Новый Массив();
					Результат = ОбработчикДрайвераМодуль.ВыполнитьКоманду("GetCurrentStatus", ВходныеПараметры, ВыходныеПараметры,
						ОбъектДрайвера, ПодключенноеУстройство.Параметры, ПодключенноеУстройство.ПараметрыПодключения);
					// Увеличиваем инкремент номера последнего чека.
					ВыходныеПараметры[1]    = ВыходныеПараметры[1] + 1;
					ЗаводскойНомерФН        = ВыходныеПараметры[5];
					ЗаводскойНомерФН = ?(ВыходныеПараметры.Количество() > 5, ВыходныеПараметры[5], Неопределено);
Показать
7. acer85 22.03.18 20:08 Сейчас в теме
Lenochka Semicova
Можно подробней как исправить ошибку
(При побитии чека пишет ошибку "Индекс находица за границами массива")

{kod}
Иначе
ЗаводскойНомерФН = Неопределено;

Если ПодключенноеУстройство.ТипОборудованияИмя = "ПринтерЧеков" Тогда
ВыходныеПараметры = Новый Массив();
ВыходныеПараметры.Добавить(ОбщиеПараметры.НомерСмены);
ВыходныеПараметры.Добавить(ОбщиеПараметры.НомерЧека);
Результат = Истина;
ИначеЕсли ПодключенноеУстройство.ТипОборудованияИмя = "ККТ" Тогда
ВремВходныеПараметры = Новый Массив();
Результат = ОбработчикДрайвераМодуль.ВыполнитьКоманду("GetCurrentStatus", ВходныеПараметры, ВыходныеПараметры,
ОбъектДрайвера, ПодключенноеУстройство.Параметры, ПодключенноеУстройство.ПараметрыПодключения);
// Увеличиваем инкремент номера последнего чека.
ВыходныеПараметры[1] = ВыходныеПараметры[1] + 1;
ЗаводскойНомерФН = ВыходныеПараметры[5];
ЗаводскойНомерФН = ?(ВыходныеПараметры.Количество() > 5,ВыходныеПараметры[5], Неопределено);
{kod}
а где и куда я голову сломал. сколько денег чтобы вы сделали я скину конфигурацию вы правите а я обновляю конфиг у себя
8. lenochka-semicova 23.03.18 10:25 Сейчас в теме
Вместо
// Увеличиваем инкремент номера последнего чека.
ВыходныеПараметры[1] = ВыходныеПараметры[1] + 1;
ЗаводскойНомерФН = ВыходныеПараметры[5];
ЗаводскойНомерФН = ?(ВыходныеПараметры.Количество() > 5,ВыходныеПараметры[5], Неопределено);

Надо написать
// Увеличиваем инкремент номера последнего чека.
ВыходныеПараметры[1] = ВыходныеПараметры[1] + 1;
ЗаводскойНомерФН = ?(ВыходныеПараметры.Количество() > 5,ВыходныеПараметры[5], Неопределено);


Это если ошибка в этом модуле. Но там таких вставок по конфигурации было несколько.
2.2.6 сейчас под рукой нету. давно уже всех пообновляли на 2.2.7
Если совсем никак не получится - ну лучше обратиться к Вашему местному франчайзи.
9. Drotovsky 24.03.18 14:45 Сейчас в теме
Константин, вам это принципиально: "ККТ с передачей данных", старый драйвер ставите и настраиваете как старый ФР и чеки будут биться.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот