|
1С УПП 1.3: Отчет Кассовая книга, ошибка формирования Страниц. | ☑ | ||
|---|---|---|---|---|
|
0
Владимир Толич
07.05.18
✎
12:21
|
Суть проблемы:
Нумерация кассовой книги дала сбой. Описание ситуации: Печатаю Кассовую книгу за период 13.03 - 17.03. Нумерация 13,14,15-го - нормальная, 16-го , 17-го бред. Смотрю отличие между этими числами и данными, а оно в том, что 15-го числа количество документов не влезло на один печатный лист. Лезу в конфигурацию и вижу супер-процедуру: Процедура НачатьНовуюСтраницу(СоответствиеНомеровГод, СоответствиеНомеровМесяц, ТекДата, СледДата, ОбластьШапка) ЧислоДокумента = Формат(ТекДата,"ДФ='дд';Л=uk_UA"); ДатаДокумента = Формат(ТекДата,"ДФ='дд ММММ ггггр.';Л=uk_UA"); ДатаДокументаБезЧисла = Прав(ДатаДокумента, СтрДлина(ДатаДокумента) - 2); ОбластьШапка.Параметры.ДатаПрописью = """" + ЧислоДокумента + """" + ДатаДокументаБезЧисла; // номер листа НомеТекЛистаГода = СоответствиеНомеровГод.Получить(НачалоДня(ТекДата)); СоответствиеНомеровГод.Вставить(НачалоДня(ТекДата), НомеТекЛистаГода + 1); НомеТекЛистаМесяца = СоответствиеНомеровМесяц.Получить(НачалоДня(ТекДата)); СоответствиеНомеровМесяц.Вставить(НачалоДня(ТекДата), НомеТекЛистаМесяца + 1); ОбластьШапка.Параметры.НомерЛиста = НомеТекЛистаГода + 1; Если НачалоМесяца(СледДата) = НачалоМесяца(ТекДата) Тогда СоответствиеНомеровМесяц.Вставить(НачалоДня(СледДата), НомеТекЛистаМесяца + 2); КонецЕсли; Если НачалоГода(СледДата) = НачалоГода(ТекДата) Тогда СоответствиеНомеровГод.Вставить(НачалоДня(СледДата), НомеТекЛистаГода + 2); КонецЕсли; КонецПроцедуры // НачатьНовуюСтраницу Смотрю соответствие до: 13.03 - 1 14.03 - 2 15.03 - 3 16.03 - 4 17.03 - 5 и вижу весь этот ужас после: 13.03 - 1 14.03 - 2 15.03 - 4 16.03 - 5 17.03 - 5 По коду всё вроде логично и правильно, отрабатывает он, как и ожидалось. Вопрос, у меня у одного не вмещается на лист ПКО и РКО за день? Как побороть? Пробовал перенумеровать оставшиеся элементы в соответствии так: Для Каждого Элемент Из СоответствиеНомеровГод Цикл Если Элемент.Ключ > НачалоДня(ТекДата) Тогда СоответствиеНомеровГод.Вставить(Элемент.Ключ, Элемент.Значение + 1); КонецЕсли; КонецЦикла; Но это не панацея, во-первых долго, во-вторых т.к. этот код выполняется только в случае разрыва страницы, для печати другого периода он не будет учитывать нумерацию. И получится, что если мой период закончится на 6 (реальной странице), при формировании 18.03-20.03, начальная страница будет 5 (расчетная). Подкиньте идей, я потерялся. |
| Форум | Правила | Описание | Секции | Поиск |