|
Исключение договоров | ☑ | ||
---|---|---|---|---|
0
zzzLEXzzz
03.10.12
✎
12:19
|
Привет. Стоит такая задача Вот в УТ в справочнике "контрагенты" есть вкладка "Счета и договора". И есть обработка которая выгружает с КПК приходно-кассовые ордера, и при формировании документа он берёт договор первый попавшийся. нужно чтобы обработка исключила договора в котором есть наименование "бонус" и "оборудования", сразу говорю я начинающий, и извиниюсь за тупые вопросы, вот код функции
функция ДобавитьПКО(Агент_,НомерЗаказаДелф,НомерЗаказа_,ДатаОперации_,ВремяОперации_,Контрагент_,Сумма_,АдресДоставки_,Касса_) Качество = Справочники.Качество.НайтиПоКоду("000000001"); ОпрКонф = "0"+ Лев(СокрЛП(Контрагент_),1); Если Преф <> ОпрКонф Тогда //Сообщить("Контагент не данной системы"); Возврат 0; КонецЕсли; //Сообщить("Контрагент - "+ Строка(Контрагент_)); //алекс2 //Сообщить("Контрагент - "+ Строка(Контрагент_)); //Алекс2 ************************************************************************************************** Контрагент_ = УП(Контрагент_); Контрагент1С_=Справочники.Контрагенты; Договор1С_ = Справочники.ДоговорыКонтрагентов; Док_=Документы.ПриходныйКассовыйОрдер; ТоргПред_=Справочники.мбАгенты.НайтиПоРеквизиту("ИмяКПК",Агент_.ИмяКПК); Док_=Документы.ПриходныйКассовыйОрдер.СоздатьДокумент(); // Добиваем код нулями КодВР_=Контрагент_; Для ИТ_=1 по 9-СтрДлина(Контрагент_) Цикл КодВР_="0"+КодВР_; КонецЦикла; Контрагент_=КодВР_; //Сообщить("Контрагент с доб 0 - "+ Строка(Контрагент_)); //Алекс2 *********************************************************************** Расшифровка = Док_.РасшифровкаПлатежа.Добавить(); Док_.IdMobile=Агент_.ИмяКПК+НомерЗаказаДелф+ДатаОперации_; Док_.ОтражатьВБухгалтерскомУчете = Истина; Док_.ОтражатьВНалоговомУчете = Истина; Док_.ОтражатьВУправленческомУчете = Истина; Док_.Оплачено = Истина; Док_.ОтраженоВОперУчете = Истина; Док_.ВидОперации = Перечисления.ВидыОперацийПКО.ОплатаПокупателя; Док_.СтавкаНДС = Перечисления.СтавкиНДС.НДС18; Расшифровка.СтавкаНДС = Перечисления.СтавкиНДС.НДС18; Док_.Организация=Справочники.Организации.НайтиПоКоду("000000001"); Док_.Касса = Справочники.Кассы.НайтиПоКоду("000000001"); Если Преф = "01" Тогда Если Касса_ = "1" Тогда Док_.Организация=Справочники.Организации.НайтиПоКоду("000000001"); Док_.Касса = Справочники.Кассы.НайтиПоКоду("000000001"); ИначеЕсли Касса_= "2" Тогда Док_.Организация=Справочники.Организации.НайтиПоКоду("000000002"); Док_.Касса = Справочники.Кассы.НайтиПоКоду("000000002"); КонецЕсли; ИначеЕсли Преф = "02" Тогда Если Касса_ = "1" Тогда Док_.Организация=Справочники.Организации.НайтиПоКоду("000000003"); Док_.Касса = Справочники.Кассы.НайтиПоКоду("000000003"); ИначеЕсли Касса_= "2" Тогда Док_.Организация=Справочники.Организации.НайтиПоКоду("000000004"); Док_.Касса = Справочники.Кассы.НайтиПоКоду("000000004"); КонецЕсли; ИначеЕсли Преф = "00" Тогда Сообщить ("Ошибка"); КонецЕсли; Док_.Контрагент=Контрагент1С_.НайтиПоКоду(СокрЛП(Контрагент_),0); //Док_.Контрагент=Справочники.Контрагенты.НайтиПоКоду("000000317"); Док_.ПринятоОт = СокрЛП(Док_.Контрагент); Док_.Основание = "выручка от реализации"; Дог1С = Договор1С_.НайтиПоРеквизиту("Организация",Док_.Организация,,Док_.Контрагент); Если СокрЛП(Дог1С) = "" Тогда Док_.ДоговорКонтрагента=Док_.Контрагент.ОсновнойДоговорКонтрагента; Иначе Док_.ДоговорКонтрагента = Дог1С; КонецЕсли; Док_.Дата=ТекущаяДата(); Док_.КурсДокумента = 1; Док_.СтатьяДвиженияДенежныхСредств = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("000000002"); Расшифровка.СтатьяДвиженияДенежныхСредств = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("000000002"); Расшифровка.КурсВзаиморасчетов = 1; ПрефиксЮрЛицаФирмы = ?(СокрЛП(Док_.Организация.Префикс)="","0",СокрЛП(Док_.Организация.Префикс)); Док_.УстановитьНовыйНомер(СокрЛП(ПрефиксЮрЛицаФирмы)); // Док_.Комментарий = ВРег(СокрЛП("МБ!!! "+""+ТипОплаты_М+" "+Описание_)); Док_.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду("643"); Док_.СуммаДокумента = Сумма_; Расшифровка.ДоговорКонтрагента = Док_.ДоговорКонтрагента; Расшифровка.СуммаПлатежа = Сумма_; Расшифровка.СуммаВзаиморасчетов = Сумма_; Расшифровка.СуммаНДС = Сумма_*18/118; Док_.Записать(); КонецФункции |
|||
1
Deon
03.10.12
✎
12:24
|
Здесь разумнее всего будет засунуть поиск договора в запрос, ибо методами встроенного языка как-то геморно получится
|
|||
2
Deon
03.10.12
✎
12:26
|
А почему все переменные с _ ?
|
|||
3
zzzLEXzzz
03.10.12
✎
12:33
|
а хз, не я писал обработку, я её только правлю
|
|||
4
mikecool
03.10.12
✎
12:35
|
выбрать в ТЗ список контрагент - правильный договор
при создании документа искать в ТЗ контрагента и подставлять договор |
|||
5
zzzLEXzzz
03.10.12
✎
13:18
|
не могли бы вы показать где это и как в коде исправить, просто для меня это пока не понятно, пожалуйста
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |