Имя: Пароль:
1C
1С v8
Программное изменение проводок документа - не записываются :(
0 Trance_1C
 
29.11.12
11:45
Подскажите срочно плиз :) Пытаюсь изменить проводку документа (УПП 1.2, пл. 8.2.16), получаю набор записей бух. регистра Хозрасчетный, обхожу записи набора, в нужных проводках меняю счет, и !очищаю субконто старого счета!
при попытке записать набор, получаю отказ и сообщение об ошибке "Вид субконто "Договоры" недоступен для записи".
субконто проводки я выставлял в неопределено и в пустое значение типа субконто...
Как его правильно очищать?
1 Cube
 
29.11.12
11:46
Ну, показывай код...
2 shuhard
 
29.11.12
11:47
(0) ну в 13 строчке НЕ явно лишнее
3 vqwy
 
29.11.12
11:49
4 vqwy
 
29.11.12
11:50
а зачем записывать набор движений?
5 Trance_1C
 
29.11.12
11:52
Процедура КнопкаВыполнитьНажатие(Кнопка)
   Построитель.Выполнить();
   Рез = Построитель.Результат.Выгрузить();
   сч000 = ПланыСчетов.Хозрасчетный.Вспомогательный;
   Для Каждого зн Из Рез Цикл
       Док = зн.Корректировка;
       ПроводкиКБУ = ОбщегоНазначения.ПолучитьНаборЗаписейПоСсылке(Док.Ссылка,  РегистрыБухгалтерии["Хозрасчетный"]);
       ПроводкиКБУ.Прочитать();  Изменены=Истина;
       Для Каждого пров из ПроводкиКБУ Цикл
           Если Пров.СчетДТ.Код = "61.01" И Пров.СчетКт.Код = "41.01" Тогда
           
           Пров.Подразделение = Неопределено;    
           Пров.СубконтоДТ.Подразделения = Неопределено;    
           Пров.СубконтоДТ.Договоры = Неопределено;    
           Пров.СчетДТ = Сч000;
           КонецЕсли;
           Если Пров.СчетДТ.Код = "41.01" И Пров.СчетКт.Код = "61.01" Тогда
           Пров.СубконтоКТ.Подразделения = Неопределено;    
           Пров.СубконтоКТ.Договоры = Неопределено;    
           Пров.СчетКТ = Сч000;
           КонецЕсли;
       КонецЦикла;
       ПроводкиКБУ.Записать(Истина);        
   КонецЦикла;    
КонецПроцедуры
6 Shurjk
 
29.11.12
11:54
Смотри УстановитьСубконто  в типовой.
7 Trance_1C
 
29.11.12
11:55
(6)есть такая процедурко, но она просто устанавливает значение если оно не пустое и соответствует типу субконто а иначе нифига не делает...
8 Maxus43
 
29.11.12
11:56
(5) после такого кода бухи могут впасть в ступор глядя на оборотку, когда будет видеть разрывы по субконто
9 Shurjk
 
29.11.12
11:57
(7) Ты посмотри как оно это делает.
10 Trance_1C
 
29.11.12
11:58
(8) не будет такой ситуации :)
11 Mort
 
29.11.12
11:58
Пров.СубконтоКТ.Очистить();
12 Trance_1C
 
29.11.12
12:09
(11) +100500 взлетело, спасибо!
а вот УстановитьСубконто() похоже работает только когда есть что устанавливать
13 Maxus43
 
29.11.12
12:10
(12) так и нужно, юзай типовые механизмы чтоб не было гемороя
14 Shurjk
 
29.11.12
12:32
(12) Если бы ты посмотрел в эту процедуру то увидел бы как там присваивается значение субконто.