Имя: Пароль:
1C
1С v8
набор записей ошибка
0 DeeK
 
26.07.12
16:00
{Форма.Форма.Форма(73)}: Ошибка при вызове метода контекста (Записать)
   набор.Записать();
по причине:
Запись не верна! Вид субконто "Объекты строительства" не доступен для данной записи! (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет); Номер строки: 1)



набор = регистрыбухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
   набор.Отбор.регистратор.значение = док;
   
   набор.Прочитать();
   
   для каждого строка из набор цикл
       если строка.СчетДт = планысчетов.Хозрасчетный.НайтиПоКоду("86") тогда
           суб = строка.субконтоДт.объектыстроительства;
           строка.СчетДт = планысчетов.Хозрасчетный.НайтиПоКоду("86.02");
           если справочники.НоменклатурныеГруппы.НайтиПоНаименованию(суб.наименование)<>справочники.НоменклатурныеГруппы.ПустаяСсылка() тогда
               об = справочники.НоменклатурныеГруппы.НайтиПоНаименованию(суб.наименование).ПолучитьОбъект();
               об.ОбъектСтроительства = истина;
               об.ОбъектСтроительстваС = суб;
               об.Записать();
               строка.СубконтоДт.номенклатурныегруппы = справочники.НоменклатурныеГруппы.НайтиПоНаименованию(суб.наименование);
           иначе
               эл = справочники.НоменклатурныеГруппы.СоздатьЭлемент();
               эл.Наименование = суб.наименование;
               эл.ОбъектСтроительства=истина;
               эл.ОбъектСтроительстваС = суб;
               эл.Записать();
               строка.СубконтоДт.номенклатурныегруппы = эл;
           конецесли;
           строка.субконтоДт.ОбъектыСтроительства = неопределено;
       иначеесли строка.СчетКт = планысчетов.Хозрасчетный.НайтиПоКоду("86") тогда
           суб = строка.субконтоКт.объектыстроительства;
           строка.СчетКт = планысчетов.Хозрасчетный.НайтиПоКоду("86.02");
           если справочники.НоменклатурныеГруппы.НайтиПоНаименованию(суб.наименование)<>справочники.НоменклатурныеГруппы.ПустаяСсылка() тогда
               об = справочники.НоменклатурныеГруппы.НайтиПоНаименованию(суб.наименование).ПолучитьОбъект();
               об.ОбъектСтроительства = истина;
               об.ОбъектСтроительстваС = суб;
               об.Записать();
               строка.СубконтоДт.номенклатурныегруппы = справочники.НоменклатурныеГруппы.НайтиПоНаименованию(суб.наименование);
           иначе
               эл = справочники.НоменклатурныеГруппы.СоздатьЭлемент();
               эл.Наименование = суб.наименование;
               эл.ОбъектСтроительства=истина;
               эл.ОбъектСтроительстваС = суб;
               эл.Записать();
               строка.СубконтоДт.номенклатурныегруппы = эл;
           конецесли;    
           строка.субконтоКт.ОбъектыСтроительства = неопределено;

       конецесли;        
   конеццикла;
   набор.Записать();
1 Apokalipsec
 
26.07.12
16:07
Вид субконто "Объекты строительства" не доступен для данной записи!
если строка.СчетДт = планысчетов.Хозрасчетный.НайтиПоКоду("86") тогда
           суб = строка.субконтоДт.объектыстроительства;
2 DeeK
 
26.07.12
16:09
иииии, оно там есть
3 DeeK
 
26.07.12
16:09
очищаю я его потом перед записью
4 hhhh
 
26.07.12
16:11
(3) на счете 86 вроде вообще нет ни одного субконто. У вас нестандартный план счетов, что ли?
5 DeeK
 
26.07.12
16:14
(4)они в пользовательском режиме добавлены были
6 hhhh
 
26.07.12
16:17
(5) отмечаете там что ли? Где нужно Дт пишешь Кт, где Кт - Дт. Все Дт и Кт перепутаны. Хоть не позорься, пройдись внимательно по коду.
7 DeeK
 
26.07.12
16:19
(6) хааа внатуреееее, санкс
8 DeeK
 
26.07.12
16:19
вот я лох
9 DeeK
 
26.07.12
16:20
тока вот че то не фурычит нихера
10 DeeK
 
26.07.12
16:22
тоже самое выдает
11 DeeK
 
26.07.12
16:23
я смотрю там в первой строке дт86.2 кт000 все три субконто дт заполнены и об-в стр-ва нет, 000 пусто, че он хочет то?
12 DeeK
 
26.07.12
16:23
я  и не пытаюсь об стр-ва туда записать
13 cawokru
 
26.07.12
16:25
14 DeeK
 
26.07.12
16:28
так, хватит тут мне...
15 DeeK
 
26.07.12
16:30
(13) по существу давай
16 DeeK
 
26.07.12
16:34
ап ап
17 DeeK
 
26.07.12
16:43
ап ап ап
18 DeeK
 
26.07.12
16:47
ребятааааааа HELPPPP
19 DeeK
 
26.07.12
16:54
ваще очень надо срочно
20 DeeK
 
26.07.12
17:03
да что ж такое то
21 DeeK
 
26.07.12
17:09
22 Serginio1
 
26.07.12
17:19
если строка.СчетДт = планысчетов.Хозрасчетный.НайтиПоКоду("86") тогда
           строка.субконтоКт.ОбъектыСтроительства = неопределено;
Проверь наличие у счета кредита наличие субконто ОбъектыСтроительства
23 DeeK
 
26.07.12
17:21
24 DeeK
 
26.07.12
17:22
даже так: в качестве отбора по регистру засунул ему принудительно ОперациюБух, ни фига
25 DeeK
 
26.07.12
17:24
грубо говоря была запись регистра, был в ней счет, взяли поменяли на другой, одно субконто затерли другое поставили и записали, вроде все ок
26 hhhh
 
26.07.12
17:54
(25) вот всё-таки строчка

          строка.субконтоДт.ОбъектыСтроительства = неопределено;

всё-таки вы пытаетесь туда записать, хотя в (12) клялись, что не пытаетесь.
27 DeeK
 
26.07.12
22:18
(25)ок, тогда подскажите как сделать?

не отрицаю потом догнал что фактически пытаюсь писать туда, но даже закоментив строку не работает
28 DeeK
 
26.07.12
23:25
набор = регистрыбухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
   набор.Отбор.регистратор.значение = док;
   
   набор.Прочитать();
   
   для каждого строка из набор цикл
       если строка.СчетДт = планысчетов.Хозрасчетный.НайтиПоКоду("86") тогда
           суб = строка.субконтоДт.объектыстроительства;
           //БухгалтерскийУчет.УстановитьСубконто(планысчетов.Хозрасчетный.НайтиПоКоду("86"), строка.субконтоКт, "объектыстроительства", неопределено,1);
           строка.субконтоДт.Удалить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОбъектыСтроительства);
           строка.СчетДт = планысчетов.Хозрасчетный.НайтиПоКоду("86.02");
           если справочники.НоменклатурныеГруппы.НайтиПоНаименованию(суб.наименование)<>справочники.НоменклатурныеГруппы.ПустаяСсылка() тогда
               об = справочники.НоменклатурныеГруппы.НайтиПоНаименованию(суб.наименование).ПолучитьОбъект();
               об.ОбъектСтроительства = истина;
               об.ОбъектСтроительстваС = суб;
               об.Записать();
               строка.СубконтоДт.номенклатурныегруппы = справочники.НоменклатурныеГруппы.НайтиПоНаименованию(суб.наименование);
           иначе
               эл = справочники.НоменклатурныеГруппы.СоздатьЭлемент();
               эл.Наименование = суб.наименование;
               эл.ОбъектСтроительства=истина;
               эл.ОбъектСтроительстваС = суб;
               эл.Записать();
               строка.СубконтоДт.номенклатурныегруппы = эл;
           конецесли;
           строка.субконтоДт.ОбъектыСтроительства = неопределено;
       иначеесли строка.СчетКт = планысчетов.Хозрасчетный.НайтиПоКоду("86") тогда
               суб = строка.субконтоКт.объектыстроительства;
               //БухгалтерскийУчет.УстановитьСубконто(планысчетов.Хозрасчетный.НайтиПоКоду("86.02"), строка.субконтоКт, "объектыстроительства", неопределено,1);
               строка.субконтоКт.Удалить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОбъектыСтроительства);

           строка.СчетКт = планысчетов.Хозрасчетный.НайтиПоКоду("86.02");
           если справочники.НоменклатурныеГруппы.НайтиПоНаименованию(суб.наименование)<>справочники.НоменклатурныеГруппы.ПустаяСсылка() тогда
               об = справочники.НоменклатурныеГруппы.НайтиПоНаименованию(суб.наименование).ПолучитьОбъект();
               об.ОбъектСтроительства = истина;
               об.ОбъектСтроительстваС = суб;
               об.Записать();
               строка.СубконтоКт.номенклатурныегруппы = справочники.НоменклатурныеГруппы.НайтиПоНаименованию(суб.наименование);
           иначе
               эл = справочники.НоменклатурныеГруппы.СоздатьЭлемент();
               эл.Наименование = суб.наименование;
               эл.ОбъектСтроительства=истина;
               эл.ОбъектСтроительстваС = суб;
               эл.Записать();
               строка.СубконтоКт.номенклатурныегруппы = эл;
           конецесли;    
           //строка.субконтоКт.ОбъектыСтроительства = неопределено;
       конецесли;        
   конеццикла;
   набор.Записать();



даже так не канает
он просто по ключу проверяет субконто, а там объект строительства
29 DeeK
 
26.07.12
23:26
все равно не проканало почему то, тоже самое
30 DeeK
 
27.07.12
01:08
ненавижу 1с , ааааааа БАХ...
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.