Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 12:40

Проблема с созданием документа, только перевыбрав Контрагента док. проводится

Автор Laura, 21 фев 2012, 17:34

0 Пользователей и 1 гость просматривают эту тему.

Laura

Клиенты торопятся очень, банк-кассу должны выгружать каждый день. Не пользуются типовой выгрузкой-загрузкой, потому что конфигурация (ТиС) из которой загружаю  самописная. И так,загружаю данные из дбф в 1С:БП 8, создаю новые документы "Списание с р\с". Все реквизиты благополучно создаются-заполняются-проверяются, так как надо. Но документ не проводится  :( Проводится, только после того как перевыбирается Контрагент на уровне пользователя. Почему так может быть? Кто сталкивался с такой проблемой?

Klyacksa

Что значит "не проводится"? Ошибки выдает?
Поставьте отладку, на строке записи дока, посмотрите чему равен Контрагент. Проследите так же, пошагово, где вываливается проведение.

Подозреваю. что при перевыборе Контрагента просто перезаполняется более корректно какое-нибудь поле документа типа "Счет контрагента", "Договор Контрагента" и т.д., после этого данные становятся корректными.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Laura

Упс-с, я зарегистрировалась на украиском форуме... Но это не важно, коды то похожи.
"Галочка" стоит, как будто док сформировал проводки. На момент записи Контрагент в режиме отладки, тот который нужен. И действительно, после перевыбора "Счета контрагента" и  "Договора Контрагента" тоже док проводится. У этого нового контрагента записываются и договор, и банковский счет. А что значит не корректно заполняются? Что я не знаю? Где искать?

Dethmontt

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Laura

"Такая выгрузка)))"  А выгрузка причем? Ее не я делала. Вот кусок кода:

//Создаем нового контрагента
НовКонтр.Наименование = XBKontrag.NAME;
НовКонтр.НаименованиеПолное= СокрЛП(XBKontrag.PREFIX)+" "+XBKontrag.NAME;
НовКонтр.Записать();
///бла-бла-бла
///создаем новый договор
дог.Владелец = НовКонтр.Ссылка;
дог.Наименование = "#дбф поставщик";
дог.Записать();
Объект=Контр.ПолучитьОбъект();
Объект.ОсновнойДоговорКонтрагента= дог.Ссылка;
Объект.ДоговорКонтрагента=дог.Ссылка;
//////

Делала так, потому что по другому у меня не записывался договор.

Dethmontt

Цитата: Laura от 22 фев 2012, 01:56
"Такая выгрузка)))"  А выгрузка причем? Ее не я делала. Вот кусок кода:

//Создаем нового контрагента
НовКонтр.Наименование = XBKontrag.NAME;
НовКонтр.НаименованиеПолное= СокрЛП(XBKontrag.PREFIX)+" "+XBKontrag.NAME;
НовКонтр.Записать();
///бла-бла-бла
///создаем новый договор
дог.Владелец = НовКонтр.Ссылка;
дог.Наименование = "#дбф поставщик";
дог.Записать();
Объект=Контр.ПолучитьОбъект();
Объект.ОсновнойДоговорКонтрагента= дог.Ссылка;
Объект.ДоговорКонтрагента=дог.Ссылка;
//////

Делала так, потому что по другому у меня не записывался договор.

А где в этом куске кода ДОКУМЕНТ???
То что вы контрагента создали это молодчина, но это не главное!!! Главное как вы Документ заполняете!!! (в вашем случае)
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Laura

Сначала создаю документ, по ходу проверяю на наличие реквизитов в базе, если нет-создаю:

Пока НЕ хб.ВКонце() Цикл

If хб.SIGN=0 Then     ///списание  с р\с
Док = Документы.СписаниеСРасчетногоСчета.СоздатьДокумент(); //создаем ДОКУМЕНТ            
док.Дата = хб.DOCDATE;
Док.ВидОперации=перечисления.ВидыОперацийСписаниеДенежныхСредств.ОплатаПоставщику; //настроить
Док.Организация= Справочники.Организации.НайтиПоНаименованию(Организация);    

XBKontrag.Первая();             
Пока НЕ XBKontrag.ВКонце() Цикл               
Если XBKontrag.CODE =  хб.KLIENTP Тогда      //ищем контрагента по коду
Прервать;
КонецЕсли;                
XBKontrag.Следующая();                
КонецЦикла;   

Контр = Справочники.Контрагенты.НайтиПоНаименованию(XBKontrag.NAME);
Если контр = Справочники.Контрагенты.ПустаяСсылка() тогда
   Сообщить("Добавляем Контрагента "+XBKontrag.NAME);
   НовКонтр = Справочники.Контрагенты.СоздатьЭлемент();  //создаем Контрагента
   НовКонтр.Наименование = XBKontrag.NAME;
   НовКонтр.НаименованиеПолное= СокрЛП(XBKontrag.PREFIX)+" "+XBKontrag.NAME;
   Если СокрЛП(XBKontrag.PREFIX) =СокрЛП("ИП")      Тогда   //Изменить   
      НовКонтр.ЮрФизЛицо =Перечисления.ЮрФизЛицо.ФизЛицо;               
   Иначе
      НовКонтр.ЮрФизЛицо =Перечисления.ЮрФизЛицо.ЮрЛицо;
   КонецЕсли;      
               
НовКонтр.Записать();
   НовКонтр.ГоловнойКонтрагент=НовКонтр.Ссылка;
               
   КонтрГруппа= Справочники.Контрагенты.НайтиПоНаименованию(XBKontrag.CODER);
   Если  КонтрГруппа=Справочники.Контрагенты.ПустаяСсылка() Тогда   //создаем группу
      НовКонтрГруппа = Справочники.Контрагенты.СоздатьГруппу();  //
      НовКонтрГруппа.Наименование = XBKontrag.CODER;
      НовКонтрГруппа.Записать();
      НовКонтр.Родитель= НовКонтрГруппа;
   Иначе
      НовКонтр.Родитель= КонтрГруппа;                  
   КонецЕсли;
   НовКонтр.ИНН=XBKontrag.INN;///и прочие реквизиты добавляем
Иначе
   //тут просто выбираем контрагента
КонецЕсли;
     док.Ответственный=Справочники.Пользователи.НайтиПоНаименованию("хб.AVTOR");
   Док.Контрагент = Контр;       //Продолжаем записывать ДОКУМЕНТ
   Если    XBBody.Code1= XBKontrag.Code1   Тогда    //находим по коду
      Док.СчетБанк=ПланыСчетов.Хозрасчетный.РасчетныеСчета;
      Док.СчетКонтрагента=ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;
      Док.ДоговорКонтрагента = Дог.Ссылка;
   КонецЕсли;            
      док.ДокументОснование=XBBody.DOK;
      док.ПлатежноеПоручениеОснование= XBBody.DOK;
                       док.РасшифровкаПлатежа.Очистить();
            //Объект.Основание=РеквизитыШапки["Основание"];
            
            СтрРасшиф=док.РасшифровкаПлатежа.Добавить();
            СтрРасшиф.ДоговорКонтрагента=Дог.Ссылка;
            СтрРасшиф.СуммаПлатежа=XBBody.SUMM;             
            СтрРасшиф.СуммаНДС=XBBody.NDS;            
            СтрРасшиф.СтатьяДвиженияДенежныхСредств=Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоНаименованию("Оплата поставщику");
            СтрРасшиф.СчетУчетаРасчетовСКонтрагентом=ПланыСчетов.Хозрасчетный.РасчетыСПокупателями;
            СтрРасшиф.СчетУчетаРасчетовПоАвансам=ПланыСчетов.Хозрасчетный.РасчетыПоАвансамПолученным;
            СтрРасшиф.СпособПогашенияЗадолженности=Перечисления.СпособыПогашенияЗадолженности.Автоматически;
            
            """""""""""""""""""""""""""
            док.ВалютаДокумента  = ВалютаОсновная;
            док.СчетКонтрагента=Справочники.БанковскиеСчета.НайтиПоКоду("852500102");
            док.СчетОрганизации=Организация.ОсновнойБанковскийСчет;///!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! изменить
            док.СуммаДокумента=XBBody.SUMM;
            док.ДатаВходящегоДокумента=XBBody.DOD; //дата вх. док  XBBody.SD;//дата счета
            док.ДатаВходящегоДокумента=XBBody.DON;
                     
   док.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
         хб.Следующая();
         
      КонецЦикла;
      
      хб.ЗакрытьФайл();
      
Вот как то так. Может не все перенесла? Еще у меня куча всякой лабуды с адресами-договорами-телефонами и .т.д.

Laura

 Ну я и разошлась!!! Конечно в одно сообщение текст не влезет :)
Сократим.

///бла-бла-бла... много всякой лабуды...заполняем остальные реквизиты дока, ну и концовка стандартная

EndIf;   
         
         док.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
         Сообщить(док);
         хб.Следующая();
         
      КонецЦикла;
      
      хб.ЗакрытьФайл();

Я что то, очень "Главное" при создании дока видимо не понимаю. Ведь все реквизиты красивенько записываются в документ, через Отладчик все вроде в порядке, ни каких ошибок не выводится.
Клиенты так спешат, мне сегодня нужно им запустить обработку (((

Dethmontt

И что пишет при проведении?
(Советую хотя бы глазочком взглянуть на процедуру КонтрагентПриИзменении)
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Laura


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск