Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Программное заполнение Платежки и ПКО заказами по ФИФО/ЛИФО , Проверено на УТП для Украины          
vbi Подменю пользователя
сообщение 21.02.12, 16:24
Сообщение #1

Оратор
Иконка группы
Группа: Местный
Сообщений: 373
Из: Украина, Луцк
Спасибо сказали: 72 раз
Рейтинг: 0

В стандартной конфигурации УТП для Украины, в таких документах, как "Платежное поручение входящее" и "Приходный кассовый ордер" есть пункт меню "Заполнить" табличной части "Расшифровка платежа". Этот пункт запускает стандартную обработку, открывает ее форму, а она в свою очередь подбирает неоплаченные заказы.

Иногда бывает необходимо в цикле программно заполнить платежные документы сделками по ФИФО или ЛИФО. Многие пишут все вручную, либо пытаются вытащить алгоритм из той обработки заполнения, мотивируя "там же диалоговое окно открывается, как ее использовать программно?"

На самом деле все просто. Вот код заполнения неоплаченными сделками в цикле по ФИФО Платежных поручений входящих и Приходных кассовых ордеров. Может кому пригодится:

Платежное поручение входящее:
 Для Каждого Платежка Из ТаблицаПлатежек Цикл
             ОбрОб=Обработки.ПодборПараметровРасшифровкиПлатежа.Создать();

             ОбрОб.КурсДокумента                    =1;        // Если есть валюта - получить
             ОбрОб.КратностьДокумента            =1;        // Если есть валюта - получить
            
             ДокОб = Платежка.Ссылка.ПолучитьОбъект();
             ДокОб.РасшифровкаПлатежа.Очистить();
            
             ОбрОб.ДокументСсылка                 =Платежка.Ссылка;
             ОбрОб.ТипЗадолженности                =">0";
             ОбрОб.Контрагент                    =ДокОб.Контрагент;
             ОбрОб.ФормаОплаты                    =Перечисления.ВидыДенежныхСредств.Безналичные;
             ОбрОб.ИмяРегистраПлан                ="ПланируемыеПоступленияДенежныхСредств";
             ОбрОб.ВидОперацииПлан                =Перечисления.ВидыОперацийПланируемоеПоступлениеДС.ОплатаПокупателя;
             ОбрОб.БанковскийСчетКасса            =ДокОб.СчетОрганизации;
             ОбрОб.Организация                    =ДокОб.Организация;
             ОбрОб.ВалютаДокумента                =ДокОб.ВалютаДокумента;
             ОбрОб.ДатаДок                        =ДокОб.Дата;
             ОбрОб.ВидОперацииДок                =Перечисления.ВидыОперацийПоступлениеБезналичныхДенежныхСредств.ОплатаПокуп
ателя;
             ОбрОб.РасшифровкаПлатежаДок            =ДокОб.РасшифровкаПлатежа;
             ОбрОб.СуммаДляПодбора                =ДокОб.СуммаДокумента;
             ОбрОб.ПлатежПоСуммеВзаиморасчетов    =Ложь;
             ОбрОб.ЕстьПодбор                    =Ложь;
             ОбрОб.ОтражатьВБухгалтерскомУчете = ДокОб.ОтражатьВБухгалтерскомУчете;
            
             ОбрОб.УчитыватьФактическиеЗадолженности=Истина;
             ОбрОб.УчитыватьОперативныеЗадолженности=Ложь;
             ОбрОб.ПодбиратьСумму=Истина;
             ОбрОб.СпособЗаполнения="ФИФО"; // Если нужно "ЛИФО"
             ОбрОб.ПоЗаявкам=Ложь;
             ОбрОб.ПодбиратьПланируемыеДвижения=Ложь;
             ОбрОб.НеПревышатьЗапланированныхЗначений=Ложь;
             ОбрОб.ВключенныеВПлатежныйКалендарь=Истина;
             ОбрОб.ЗаполнитьРасшифровкуПоДолгам(Истина,Ложь);
        
             Для Каждого Строка Из ДокОб.РасшифровкаПлатежа Цикл
                 ДокОб.ОпределитьСчетаУчетаРасчетовСКонтрагентом(Строка);
                 УправлениеДенежнымиСредствами.ПересчитатьСуммуНДС(Строка);    
             КонецЦикла;
            
             Попытка
                 ДокОб.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
             Исключение
                 Сообщить(ОписаниеОшибки());
             КонецПопытки;
КонецЦикла;


Приходные кассовые ордера:
 Для Каждого ПКО Из ТаблицаПКО Цикл
             ОбрОб=Обработки.ПодборПараметровРасшифровкиПлатежа.Создать();
            
             ДокОб = ПКО.Ссылка.ПолучитьОбъект();
             ДокОб.РасшифровкаПлатежа.Очистить();
            
             ОбрОб.КурсДокумента                    =1; // Если есть валюта - получить
             ОбрОб.КратностьДокумента            =1; // Если есть валюта - получить
             ОбрОб.ДокументСсылка                 =ПКО.Ссылка;
             ОбрОб.ТипЗадолженности                =">0";
             ОбрОб.Контрагент                    =ДокОб.Контрагент;
             ОбрОб.ФормаОплаты                    =Перечисления.ВидыДенежныхСредств.Наличные;
             ОбрОб.ИмяРегистраПлан                ="ПланируемыеПоступленияДенежныхСредств";
             ОбрОб.ВидОперацииПлан                =Перечисления.ВидыОперацийПланируемоеПоступлениеДС.ОплатаПокупателя;
             ОбрОб.БанковскийСчетКасса            =ДокОб.Касса;
             ОбрОб.Организация                    =ДокОб.Организация;
             ОбрОб.ВалютаДокумента                =ДокОб.ВалютаДокумента;
             ОбрОб.ДатаДок                        =ДокОб.Дата;
             ОбрОб.ВидОперацииДок                =Перечисления.ВидыОперацийПоступлениеБезналичныхДенежныхСредств.ОплатаПокуп
ателя;
             ОбрОб.РасшифровкаПлатежаДок            =ДокОб.РасшифровкаПлатежа;
             ОбрОб.СуммаДляПодбора                =ДокОб.СуммаДокумента;
             ОбрОб.ПлатежПоСуммеВзаиморасчетов    =Истина;
             ОбрОб.ЕстьПодбор                    =Ложь;
             ОбрОб.ОтражатьВБухгалтерскомУчете = ДокОб.ОтражатьВБухгалтерскомУчете;
             ОбрОб.ВидОперацииДок                = ДокОб.ВидОперации;
             ОбрОб.ВалютаДокумента                =ДокОб.ВалютаДокумента;            
             ОбрОб.УчитыватьФактическиеЗадолженности=Истина;
             ОбрОб.УчитыватьОперативныеЗадолженности=Ложь;
             ОбрОб.ПодбиратьСумму=Истина;
             ОбрОб.СпособЗаполнения="ФИФО";     // Если нужно "ЛИФО"
             ОбрОб.ПоЗаявкам=Ложь;
             ОбрОб.ПодбиратьПланируемыеДвижения=Ложь;
             ОбрОб.НеПревышатьЗапланированныхЗначений=Ложь;
             ОбрОб.ВключенныеВПлатежныйКалендарь=Истина;
             ОбрОб.ЗаполнитьРасшифровкуПоДолгам(Истина,Ложь);

             Для Каждого Строка Из ДокОб.РасшифровкаПлатежа Цикл
                 ДокОб.ОпределитьСчетаУчетаРасчетовСКонтрагентом(Строка);
                 УправлениеДенежнымиСредствами.ПересчитатьСуммуНДС(Строка);    
             КонецЦикла;
            
             Попытка
                 ДокОб.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
             Исключение
                 Сообщить(ОписаниеОшибки());
             КонецПопытки;
КонецЦикла;


Signature
Впроваджую, супроводжую

Спасибо сказали: Irina_, nmf, Oksi_K, Vofka,

feb Подменю пользователя
сообщение 05.11.15, 10:02
Сообщение #2

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

У кого-нибудь работал этот код?

andr_andrey Подменю пользователя
сообщение 05.11.15, 11:12
Сообщение #3

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 623
Спасибо сказали: 166 раз
Рейтинг: 130.8

Цитата(feb @ 05.11.15, 10:02) *
У кого-нибудь работал этот код?

Рассматривайте любой код в интернете как направление поиска, а не как кусок для копи-паста.


Signature
#define private public
enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day

feb Подменю пользователя
сообщение 05.11.15, 13:01
Сообщение #4

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(andr_andrey @ 05.11.15, 11:12) *
Рассматривайте любой код в интернете как направление поиска, а не как кусок для копи-паста.

В данном случае меня интересует не столько этот код, сколько варианты решения этой задачи: Программное заполнение Платежки заказами по ФИФО.

Может еще какие-то варианты есть? Например, с использованием типового функционала...

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 20:58
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!