Володька @ 04.05.18, 13:42
,
Хоть и прошло больше года, ситуация не разрешена до сих пор. У меня почти каждый день касса не помещается на 1 лист и вследствие - разрыв нумерации.
На УПП перешли в апреле этого года (см. дату поста).
Релиз 1.3.61.3
Проблему решаем "сдвигом" начального номера листов кассовой книги.
Я нашел в конфигурации регистр сведений НомераЛистовКассовойКниги, внес туда начальный номер следующего дня.
Судя по его полной пустоте и глобальному поиску по конфигурации - либо я чего-то не знаю, либо он не используется нигде.
Теперь буду в Кассовую Книгу при формировании брать начальный номер по ПолучитьПоследнее и после формирования записывать, какой номер будет начальным завтра.
Типовой код не менял, в пределах дня нумерует нормально, с учетом сдвига начального номера.
Володька @ 04.05.18, 13:42
,
Вот прямо по ходу работы комментирую свои размышления:
Можно "слегка" подправить" типовой код функции ПолучитьНачальныйНомерЛиста() на регистр НомераЛистовКассовойКниги, НО!
Он не "заточен" под обособленное Подразделение, следовательно, нужно привести его к виду регистра сведений НачальныеНомераЛистовКассовойКниги.
(Если честно - я вообще не вижу смысла в регистре сведений НачальныеНомераЛистовКассовойКниги, его периодичность - Год и пользы ноль)
Периодичность регистра НомераЛистовКассовойКниги - День, что меня очень устраивает.
Также подправить функцию ЗаписатьНачальныйНомерЛиста() на тот же регистр.
Итого:
1. Переделываем регистр НомераЛистовКассовойКниги точно как НачальныеНомераЛистовКассовойКниги. Периодичность не трогаем.
2. Переделываем 2 функции под новый регистр.
Должно работать, даже в динамике, т.е. в процессе работы можно формировать КК сколько угодно ).
Володька @ 04.05.18, 13:42
,
И последнее - решить вопрос перехода в Новый Год )))
Изменения в коде:
Процедура ПолучитьНачальныйНомерЛиста()
Если НЕ ВидОтчета = "Кассовая книга" Тогда
Возврат;
КонецЕсли;
ЗапросНачальныйНомер = Новый Запрос;
ЗапросНачальныйНомер.УстановитьПараметр("Дата",[highlight]ДатаНач[/highlight]);
Если ОбособленноеПодразделениеОрганизации.Пустая() Тогда
ЗапросНачальныйНомер.УстановитьПараметр("СтруктурнаяЕдиница", Организация);
Иначе
ЗапросНачальныйНомер.УстановитьПараметр("СтруктурнаяЕдиница", ОбособленноеПодразделениеОрганизации);
КонецЕсли;
ЗапросНачальныйНомер.УстановитьПараметр("Валюта", Валюта);
ЗапросНачальныйНомер.Текст="ВЫБРАТЬ
| НачальныеНомераЛистовКассовойКнигиСрезПоследних.НомерЛиста,
| НачальныеНомераЛистовКассовойКнигиСрезПоследних.Период
|ИЗ
| РегистрСведений.[highlight]НомераЛистовКассовойКниги[/highlight].СрезПоследних(
| &Дата,
| СтруктурнаяЕдиница = &СтруктурнаяЕдиница
| И Валюта = &Валюта) КАК НачальныеНомераЛистовКассовойКнигиСрезПоследних";
ВыборкаНачальныйНомер = ЗапросНачальныйНомер.Выполнить().Выбрать();
НачальныйНомерЛиста = 1;
Если ВыборкаНачальныйНомер.Следующий() Тогда
// может быть только один номер.
Если ВыборкаНачальныйНомер.Период = [highlight]ДатаНач[/highlight] Тогда
НачальныйНомерЛиста = ВыборкаНачальныйНомер.НомерЛиста;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ЗаписатьНачальныйНомерЛиста()
Если НЕ ВидОтчета = "Кассовая книга" Тогда
Возврат;
КонецЕсли;
МенеджерЗаписи = РегистрыСведений.[highlight]НомераЛистовКассовойКниги[/highlight].СоздатьМенеджерЗаписи();
МенеджерЗаписи.Период = [highlight]ДатаНач[/highlight];
Если ОбособленноеПодразделениеОрганизации.Пустая() Тогда
МенеджерЗаписи.СтруктурнаяЕдиница = Организация;
Иначе
МенеджерЗаписи.СтруктурнаяЕдиница = ОбособленноеПодразделениеОрганизации;
КонецЕсли;
МенеджерЗаписи.Валюта = Валюта;
МенеджерЗаписи.НомерЛиста = НачальныйНомерЛиста;
МенеджерЗаписи.Записать(Истина);
КонецПроцедуры
В регистре НомераЛистовКассовойКниги изменено Имя измерения Организация на ОбособленноеПодразделение.
Добавлено измерение Валюта. (скопировано и Начальных Номеров).
В коде изменено имя регистра.
Изменен Период, не НачлоГода(НачПериода), а НачПериода.
Продумываю переход через Год.
Размышляя дальше, я заметил, что
Процедура ДействияФормыСформировать(Кнопка)
ЗаписатьНачальныйНомерЛиста();
СформироватьОтчет(ЭлементыФормы.ДокументРезультат, ВидОтчета);
КонецПроцедуры
Начальный номер записывается перед формированием отчета, а он будет известен после формирования+1. )))
Идем дальше...
После изменения Измерения регистра необходимо проверить все РЛС - поменять имя реквизита.
В зависимости от требований компании добавить РЛС на валюту.
Сообщение отредактировал Vofka - 01.08.19, 8:15