Разработка предназначена для корректного формирования отчета "Кассовая книга" с учетом документов движения наличных в обособленных подразделениях (ОП). Протестировано на конфигурациях БП 3.0 ПРОФ версий 3.0.81.30, 3.0.83.33. Режим совместимости расширения 8.3.14 ( как у типового решения). Код открыт.
Данное расширение разработано под требования заказчика (и свои, как сопровожденца):
- кассовая книга раздельно по каждому подразделению;
- раздельная нумерация документов;
- раздельная нумерация листов кассовой книги;
- остатки по счетам этих касс должны попадать в регламентированный отчет "Бухгалтерский баланс"
- не снимать конфигурацию с поддержки;
- простота настройки и удобство работы кассиров-операционистов;
На Инфостарте представлена не одна публикация на данную тему, упомяну те, в описании которых нашел идеи и взял за основу:
//infostart.ru/public/353673/ - каждому ОП завести свой субсчет на 50 счете.
//infostart.ru/public/645791/ - дополнительные реквизиты подразделения для настройки соответствия префикса документов и счета кассы.
//infostart.ru/public/1289426/ - самая близкая по реализации. Но нашел я ее уже когда печатал свою публикацию. Помогла утвердиться в идее использовать счет «50.02» операционная касса с вводом субсчетов для подразделений.
Настройка
1. Заводим в режиме Предприятия два дополнительных реквизита ( тип для совместимости из //infostart.ru/public/645791/) для справочника Подразделения( Администрирование - Общие настройки - Дополнительные реквизиты).Первый реквизит: "ПрефиксКассовыхДокументов" (Строка, длина 2. Длину можно задать любую. Но в типовом решении предлагается 2 символа). Второй реквизит "СчетКассыПодразделения" (Строка, длина 10)
2. Настройка счета кассы подразделения. Подразделениям можно сопоставить любые счета, которые необходимо будет указывать в ПКО и РКО. Но для того , чтобы остатки сразу отражались в отчете "Бухгалтерский баланс" делаем вывод, что остается использовать только счет «50.02» операционная касса. Для этого в плане счетов для счета "50.02" пользовательском режиме устанавливаем признак «Счет является группой и не выбирается в проводках» и добавляем субсчета вида «50.02.1», «50.02.2» и т.д для каждого обособленного подразделения.
3. Заходим в справочник «Подразделения». Для головного подразделения дополнительные реквизиты оставляем пустые. Для обособленного ставим префикс например "ОП" и счет «50.02.1». Те же действия для других обособленных подразделений. Префикс номера будет формироваться по правилам типового решения БП 3.0 Префикс=ПрефиксОП + ПрефиксИБ + "-";
4. Будем считать, что ФИО кассира для отчета «Кассовая книга» для головного подразделения берется из Ответственных лиц организации по роли Кассир. А отчет по ОП формирует текущий пользователь (кассир ОП). Чтобы ФИО подставилось в отчет надо в справочнике "Пользователи", надо заполнить "Физическое лицо" и "Подразделение" для кассиров ОП. По полю "Подразделение" определяется соответствие счета кассы и подставляется в РКО,ПКО.
5. При подключении расширения снять галку “Безопасный режим“.
Подробности по реализации решения
В расширение добавлен отчет "Кассовая книга (ОП)" и включен в подсистему "Банк и касса", поэтому появляется в интерфейсе раздела. Переопределена команда формы журнала "Деньги"(Кассовые документы). Можно удалить из расширения, тогда из журнала можно печатать типовой отчет.
Для реализации раздельной нумерации Листов кассовой книги в расширение добавлен модуль менеджера регистра сведений "НомераЛистовКассовойКниги". Переопределяем две функции с целью записи в регистр измерения Подразделение. Для проверки в расширение дополнительно включен простой отчет "Номера листов кассовой книги"
Подстановку счета кассы в документы ПКО и РКО решено было сделать с вопросом пользователю. Поэтому используется событие формы "При открытии". Вместо формы заимствуем общие модули ПриходныйКассовыйОрдерФормыКлиент и РасходныйКассовыйОрдерФормыКлиент. Можно бы было внести в расширение функциональную опцию для настройки - "Задавать вопрос или нет", но новые константы можно ввести только в режиме совместимости выше 8.3.15. Если устанавливать без вопроса, то конечно это надо делать в серверном вызове, например в событии ПриСозданииНаСервере. Желающие могут доработать этот момент. Сейчас просто добавлены комментарии.
Процедура Касс_ПриОткрытииФормы(Форма, Отказ) экспорт
Если Форма.Объект.Ссылка.Пустая() тогда
ПодразделениеИСчетКассы=Касс_Служебный.ПолучитьПодразделениеИСчетКассыТекущегоПользователя();
Если ЗначениеЗаполнено(ПодразделениеИСчетКассы.СчетКассы) Тогда
//Закомментировать и Раскоментировать если нужен вопрос о замене счета в документе
//++без вопроса
//ОбъектДокумент=Форма.Объект;
//Касс_Служебный.УстановитьСчетКассыВДокументе(ОбъектДокумент,ПодразделениеИСчетКассы.СчетКассы);
//КопироватьДанныеФормы(ОбъектДокумент,Форма.Объект);
//--без вопроса
//++ с вопросом
ДополнительныеПараметры = Новый Структура("Форма,СчетКассы",Форма,ПодразделениеИСчетКассы.СчетКассы);
ТекстВопроса=ПодразделениеИСчетКассы.ТекстВопроса;
ПоказатьВопрос(Новый ОписаниеОповещения("Касс_ПриОткрытииЗавершение", Касс_СлужебныйКлиент,ДополнительныеПараметры), ТекстВопроса, РежимДиалогаВопрос.ДаНет);
//-- с вопросом
КонецЕсли;
КонецЕсли;
КонецПроцедуры