Имя: Пароль:
1C
1С v8
Редактирование документа Операция
0 lll52
 
09.08.12
11:54
Добрый день. Подскажите где копать.
Нужно обработкой заполнить третье субконтоКт в документе Операция. Счет 62 -- третье субконто это Документ расчетов с контрагентами.
Пишу так:
Процедура ЗаполняемОперациюДокументомРеализации(Реализация,ДокОперация)
   НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Значение = ДокОперация.ссылка;
   НаборЗаписей.Прочитать();
   ТЗа = НаборЗаписей.Выгрузить();
   Для каждого Проводка из ТЗа Цикл
       БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт3,3,реализация);
   КонецЦикла;
   НаборЗаписей.Записать();
   Док.Записать();                
КонецПроцедуры

Когда смотрю отладчиком, то значение Проводка.СубконтоКт3 = неопределено, Проводка.ВидСубконтоКт3 =    Документы расчетов с контрагентом. И когда я передаю эти параметры в стандартную процедуру Процедура УстановитьСубконто(Счет, Субконто, ИмяСубконто, ЗначениеСубконто, Сообщать = Ложь, Заголовок = "", ВидыСубконтоСчета = Неопределено) Экспорт
в общем модуле, то там спотыкается на строчке Субконто.Вставить(ВидСубк, ЗначениеСубконто); пишет --- {ОбщийМодуль.БухгалтерскийУчет.Модуль(1630)}: Значение не является значением объектного типа (Вставить)
       Субконто.Вставить(ВидСубк, ЗначениеСубконто);
ВидСубк, ЗначениеСубконто --- эти значения заполнены.
1 DSatan
 
09.08.12
12:02
посмотри на типовых примерах, что нужно передавать в качестве параметра "Субконто" в процедуру "УстановитьСубконто"
2 lll52
 
09.08.12
12:33
(1) К сожалению в примерах вижу только варианты, где проводки создаются заново.
3 Alex375
 
09.08.12
12:44
Вторым параметром скорее всего должен передаваться вид субконто. А у тебя похоже передается значение субконто.
4 lll52
 
09.08.12
13:17
Сделала. Вариант конечно не изящный, но работает.
Процедура ЗаполняемОперациюДокументомРеализации(Реализация,ДокОперация)
   НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Значение = ДокОперация.ссылка;//Док.Движения.Хозрасчетный;
   НаборЗаписей.Прочитать();
   ТЗа = НаборЗаписей.Выгрузить();
   Для каждого Проводка из ТЗа Цикл
       НаборЗаписейНовый = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
       НаборЗаписейНовый.Отбор.Регистратор.Установить(ДокОперация.ссылка);
       Движение = НаборЗаписейНовый.Добавить();        
       Движение.Регистратор = Проводка.Регистратор;
       Движение.Период      = Проводка.Период;
       Движение.СчетДт = Проводка.СчетДт;
       Движение.СубконтоДт.Контрагенты = Проводка.СубконтоДт1;
       Движение.СубконтоДт.Договоры = Проводка.СубконтоДт2;
                   
       Движение.СчетКт = Проводка.СчетКт;
       Движение.СубконтоКт.Контрагенты = Проводка.СубконтоКт1;
       Движение.СубконтоКт.Договоры = Проводка.СубконтоКт2;
       Движение.СубконтоКт.ДокументыРасчетовСКонтрагентами = Реализация;
       //БухгалтерскийУчет.УстановитьСубконто(Движение.СчетКт, Движение.СубконтоКт,3,реализация,Истина,);

       Движение.Организация = Проводка.Организация;
       Движение.ВалютаДт = Проводка.ВалютаДт;
       Движение.ВалютаКт = Проводка.ВалютаКт;
       Движение.ПодразделениеДт = Проводка.ПодразделениеДт;
       Движение.ПодразделениеКт = Проводка.ПодразделениеКт;
       Движение.Сумма      = Проводка.Сумма;
       Движение.ВалютнаяСуммаДт = Проводка.ВалютнаяСуммаДт;
       Движение.ВалютнаяСуммаКт = Проводка.ВалютнаяСуммаКт;
       Движение.КоличествоДт = Проводка.КоличествоДт;
       Движение.КоличествоКт = Проводка.КоличествоКт;
       Движение.СуммаНУДт = Проводка.СуммаНУДт;
       Движение.СуммаНУКт = Проводка.СуммаНУКт;
       Движение.СуммаПРДт = Проводка.СуммаПРДт;
       Движение.СуммаПРКт = Проводка.СуммаПРКт;
       Движение.СуммаВРДт = Проводка.СуммаВРДт;
       Движение.СуммаВРКт = Проводка.СуммаВРКт;
       Движение.Содержание = Проводка.Содержание;
       Движение.НеКорректироватьСтоимостьАвтоматически = Проводка.НеКорректироватьСтоимостьАвтоматически;
   КонецЦикла;
   НаборЗаписейНовый.Записать();
   //Док.Записать();
               
КонецПроцедуры
5 probably
 
09.08.12
18:28
Тебе верно посоветовали посмотреть, как в типовых. Вид субконто должен передаваться строкой
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс