Имя: Пароль:
1C
1С v8
Отчет комиссионера - откуда берет субконто кредита (комитент)?
,
0 philll
 
11.10.12
19:31
Самописной обработкой формируется Отчет комиссионера, при этом делается проводка дт 62.01/ кт 76.09 (реализация товаров), в субконто кредита при этом ставится контрагент (комитент).

Эта же обработка предварительно формирует Поступление и Реализацию, Поступление отражает прием товара на комиссию от Комитента.

Проблема в том что комитент в кредит 76.09 во многих случаях подставляется не тот, который в Поступлении.

По какому принципу он подставляется? Может берется тот от кого раньше было поступление?

Как лучше выйти из ситуации? Может программно принудительно подставлять нужного?
1 philll
 
15.10.12
12:03
p.s. Берется тот комитент, от которого раньше было поступление.
Как программно поменять субконто (контрагента)? Как я понимаю, надо обратиться к движениям документы, что-то вроде "выгрузить" в таблицу, там поменять контрагента и обратно записать?
2 philll
 
15.10.12
12:17
проводки = регистрбухгалтерии.основнойрегистрбухгалтерии.создатьнаборзаписей();
проводки.отбор.регистратор.установить(текдокумент);
проводки.ПРОЧИТАТЬ();
пока проводки.следующий() цикл
 если проводки.содержание = "тото-тото" тогда
     проводки.сумма = нашасумма
 конецЕсли;
конеццикла

проводки.ЗАПИСАТЬ()   так?
3 philll
 
15.10.12
12:47
проводки = регистрыНакопления.РеализованныеТоварыКомитентов.создатьнаборзаписей();
проводки.отбор.регистратор.установить(новдок);
проводки.ПРОЧИТАТЬ();
пока проводки.следующий() цикл

  сообщить (проводки.контрагент);
 
 
конеццикла;

проводки.ЗАПИСАТЬ()  
/////
Метод объекта не обнаружен (следующий) - что не так?
4 Axel2009
 
15.10.12
12:47
(3) глянуть СП
5 philll
 
15.10.12
12:53
Получает следующую запись из выборки. Для обхода записей регистра нужно после получения выборки вызвать данный метод для позиционирования на первую запись и далее вызывать до тех пор, пока не будет возвращено значение Ложь.



Регистр = РегистрыНакопления.ОстаткиТоваровКомпании;
Выборка = Регистр.Выбрать();
Пока Выборка.Следующий() Цикл
   // обработка записей выборки
   // ...
КонецЦикла;

т.е. Надо выбрать() ?
6 philll
 
15.10.12
13:07
Для каждого Запись Из проводки цикл

  сообщить (проводки.контрагент);

 
конеццикла;

проводки.ЗАПИСАТЬ()  
/////

вот так уже эту ошибку не выдает, но и контрагента не сообщает
в конце ругается :


{Форма.Форма.Форма(833)}: Ошибка при вызове метода контекста (Записать)
проводки.ЗАПИСАТЬ()  
по причине:

по причине:
Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Реализованные товары и услуги комитентов (принципалов))
7 philll
 
15.10.12
13:11
проводки.записать()поставил перед КонцомЦикла. Не ругается.

Но почему контрагента не сообщает?
8 philll
 
15.10.12
13:21
и не заменяет:


  проводки.контрагент=справочники.Контрагенты.НайтиПоКоду("000000034");
9 hhhh
 
15.10.12
19:39
(8) Запись.Контрагент !!! блин, ты там головой что ли сегодня долбанулся??
10 hhhh
 
15.10.12
19:41
(8) проводки - это таблица. Там в каждой строке может быть свой контрагент.