Снятие/внесение наличных по счету без движений. УНФ 1.6
Клиент жалуется, что если не используются переводы в пути, то расход денежных средств с видом операции «снятие наличных» вообще не делает движений.
Нашел тут этому объяснение, мол в УНФ решили упростить операции:
Предложил клиенту использовать переводы в пути, он не хочет создавать кассовый документ, хочет чтобы расход со счета сразу делал перевод в кассу. Т.е. ему надо наоборот, не так, как видят разработчики УНФ.
Ну что же. Будем исправлять.
Конечно, можно было бы набросать свои проводки. Но курсовые разницы и вот это все… Приходится следовать путём методистов 1С и менять текст запроса, в котором описываются движения по деньгам.
К сожалению, приходится менять текст метода РасходСоСчета.МодульМенеджера.СформироватьТаблицаДенежныеСредства целиком через &Вместо:
&ИзменениеИКонтроль("СформироватьТаблицаДенежныеСредства") Процедура дор_СформироватьТаблицаДенежныеСредства(ДокументСсылкаРасходСоСчета, СтруктураДополнительныеСвойства) ... Запрос.Текст = "ВЫБРАТЬ ... |ГДЕ | (ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходСоСчета.Подотчетнику) | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходСоСчета.Прочее) | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходСоСчета.КомиссияБанка) | ... | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходСоСчета.ЗарплатаСотруднику) | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходСоСчета.ПереводНаДругойСчет) | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходСоСчета.СнятиеНаличных) #Удаление | И &ИспользуютсяПереводыВПути) #КонецУдаления #Вставка | ) //Делаем движиние по кассе всегда!!! #КонецВставки | И &ОстатокСуммы > 0 | |ОБЪЕДИНИТЬ ВСЕ | ... |ГДЕ | (ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходСоСчета.Подотчетнику) | ИЛИ ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходСоСчета.Прочее) | ИЛИ ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходСоСчета.КомиссияБанка) | ИЛИ ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходСоСчета.ЛичныеСредстваПредпринимателя) | ... | ИЛИ ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходСоСчета.СнятиеНаличных) #Удаление | И &ИспользуютсяПереводыВПути) #КонецУдаления #Вставка | ) //Делаем движиние по кассе всегда!!! #КонецВставки | И &ПлатежныйКалендарь | И ВременнаяТаблицаРасшифровкаПлатежа.СуммаПлатежа > 0 | ... |ОБЪЕДИНИТЬ ВСЕ #Вставка |//ДОбавляем движение по кассе для снятия наличных |ВЫБРАТЬ | 2, | &ПеремещениеДенежныхСредств, | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход), | ТаблицаДокумента.Дата, | &Организация, | ЗНАЧЕНИЕ(Перечисление.ТипыДенежныхСредств.Наличные), | ТаблицаДокумента.Статья, | ТаблицаДокумента.Ссылка.Касса, | ТаблицаДокумента.АналитикаДДС КАК Аналитика, | ТаблицаДокумента.ВалютаДенежныхСредств, | СУММА(ВЫРАЗИТЬ(ТаблицаДокумента.СуммаВал * КурсыВалютКассы.Курс * КурсыВалютУчета.Кратность / (КурсыВалютУчета.Курс * КурсыВалютКассы.Кратность) КАК ЧИСЛО(15, 2))), | СУММА(ТаблицаДокумента.СуммаВал), | -СУММА(ВЫРАЗИТЬ(ТаблицаДокумента.СуммаВал * КурсыВалютКассы.Курс * КурсыВалютУчета.Кратность / (КурсыВалютУчета.Курс * КурсыВалютКассы.Кратность) КАК ЧИСЛО(15, 2))), | -СУММА(ТаблицаДокумента.СуммаВал), | ТаблицаДокумента.Ссылка.Касса.СчетУчета, | ТаблицаДокумента.ДоговорПлатежногоАгента |ИЗ | ВременнаяТаблицаШапка КАК ТаблицаДокумента | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&МоментВремени, Валюта = &ВалютаУчета) КАК КурсыВалютУчета | ПО (ИСТИНА) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&МоментВремени, ) КАК КурсыВалютКассы | ПО ТаблицаДокумента.ВалютаДенежныхСредств = КурсыВалютКассы.Валюта |ГДЕ | ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходСоСчета.СнятиеНаличных) | И НЕ &ИспользуютсяПереводыВПути | //И &ОстатокСуммы > 0 | |СГРУППИРОВАТЬ ПО | ТаблицаДокумента.Дата, | ТаблицаДокумента.Ссылка.Касса, //Группировка добавлена | ТаблицаДокумента.АналитикаДДС, //Группировка добавлена | ТаблицаДокумента.Статья, | ТаблицаДокумента.БанковскийСчет, | ТаблицаДокумента.ВалютаДенежныхСредств, | ТаблицаДокумента.БанковскийСчет.СчетУчета, | ТаблицаДокумента.СчетКонтрагента, | ТаблицаДокумента.ДоговорПлатежногоАгента | ОБЪЕДИНИТЬ ВСЕ #КонецВставки | |ВЫБРАТЬ |... |"; Запрос.Выполнить(); ... КонецПроцедуры
Проводки выглядят так:
Но аппетит приходит во время еды. То же самое клиент захотел и с внесением наличных на счет.
Доработки в модуль ПоступлениеНаСчет.МодульМенеджера.СформироватьТаблицаДенежныеСредства целиком через &Вместо:
&ИзменениеИКонтроль("СформироватьТаблицаДенежныеСредства") Процедура дор_СформироватьТаблицаДенежныеСредства(ДокументСсылкаПоступлениеНаСчет, СтруктураДополнительныеСвойства) Запрос = Новый Запрос; ... Запрос.Текст = "ВЫБРАТЬ | 1 КАК НомерСтроки, | ... |ГДЕ | (ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеНаСчет.ОтПодотчетника) | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеНаСчет.Прочее) | ... | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеНаСчет.ВзносНаличными) | И &ИспользуютсяПереводыВПути | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеНаСчет.ПереводСДругогоСчета) #Удаление | И &ИспользуютсяПереводыВПути) #КонецУдаления #Вставка | ) //Делаем движиние по кассе всегда!!! #КонецВставки | И &ОстатокСуммы > 0 | | ... | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ... |ГДЕ | (ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеНаСчет.ОтПодотчетника) | ИЛИ ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеНаСчет.Прочее) | ИЛИ ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеНаСчет.ЛичныеСредстваПредпринимателя) | ... | ИЛИ ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеНаСчет.Налоги) | ИЛИ ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеНаСчет.ВзносНаличными) #Удаление | И &ИспользуютсяПереводыВПути #КонецУдаления #Вставка | //Делаем движиние по кассе всегда!!! #КонецВставки | ИЛИ ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеНаСчет.ПереводСДругогоСчета) | И &ИспользуютсяПереводыВПути) | И &ПлатежныйКалендарь | И ВременнаяТаблицаРасшифровкаПлатежа.СуммаПлатежа > 0 | | ... | |ОБЪЕДИНИТЬ ВСЕ #Вставка |//ДОбавляем движение по кассе для взноса наличных |ВЫБРАТЬ | 2, | &ПоступлениеДенежныхСредств, | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход), | ТаблицаДокумента.Дата, | &Организация, | ЗНАЧЕНИЕ(Перечисление.ТипыДенежныхСредств.Наличные), | ТаблицаДокумента.Статья, | ТаблицаДокумента.Ссылка.Касса, | ТаблицаДокумента.Ссылка.Касса.СчетУчета, | ТаблицаДокумента.АналитикаДДС КАК Аналитика, | ТаблицаДокумента.ВалютаДенежныхСредств, | ТаблицаДокумента.ДоговорПлатежногоАгента КАК ДоговорКонтрагента, | СУММА(ВЫРАЗИТЬ(ТаблицаДокумента.СуммаВал * КурсыВалютКассы.Курс * КурсыВалютУчета.Кратность / (КурсыВалютУчета.Курс * КурсыВалютКассы.Кратность) КАК ЧИСЛО(15, 2))), | СУММА(ТаблицаДокумента.СуммаВал), | -СУММА(ВЫРАЗИТЬ(ТаблицаДокумента.СуммаВал * КурсыВалютКассы.Курс * КурсыВалютУчета.Кратность / (КурсыВалютУчета.Курс * КурсыВалютКассы.Кратность) КАК ЧИСЛО(15, 2))), | -СУММА(ТаблицаДокумента.СуммаВал) |ИЗ | ВременнаяТаблицаШапка КАК ТаблицаДокумента | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&МоментВремени, Валюта = &ВалютаУчета) КАК КурсыВалютУчета | ПО (ИСТИНА) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&МоментВремени, ) КАК КурсыВалютКассы | ПО ТаблицаДокумента.ВалютаДенежныхСредств = КурсыВалютКассы.Валюта |ГДЕ | ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеНаСчет.ВзносНаличными) | И НЕ &ИспользуютсяПереводыВПути | //И &ОстатокСуммы > 0 | |СГРУППИРОВАТЬ ПО | ТаблицаДокумента.Дата, | ТаблицаДокумента.Ссылка.Касса, //Группировка добавлена | ТаблицаДокумента.АналитикаДДС, //Группировка добавлена | ТаблицаДокумента.Статья, | ТаблицаДокумента.БанковскийСчет, | ТаблицаДокумента.ВалютаДенежныхСредств, | ТаблицаДокумента.БанковскийСчет.СчетУчета, | ТаблицаДокумента.АналитикаДДС, | ТаблицаДокумента.ДоговорПлатежногоАгента | ОБЪЕДИНИТЬ ВСЕ #КонецВставки | |... |"; Запрос.Выполнить(); ... КонецПроцедуры
Движения выглядят так:
Среда УНФ 1.6.27.167. Объем 2 час.
Свежие комментарии