Имя: Пароль:
1C
1С v8
Поле объекта не обнаружено (Выборка) Строка.СубконтоКт= Выборка.СубконтоДт1[
0 ejiki
 
29.06.13
07:48
Заранее извиняюсь, не знаю как свернуть код тэгом. Не ясно где у меня ошибка если честно. Нужно сформировать ОперациюБух. Не выходит %)

Выручайте товарищи, наставте новичка на путь истинный!!!


Процедура КоманднаяПанельОССписание0109(Кнопка)
   
   НоваяБухОперация = Документы.ОперацияБух.СоздатьДокумент();
   НоваяБухОперация.Организация       = Справочники.Организации.НайтиПоКоду("000000005");
   НоваяБухОперация.Дата              = ТекущаяДата();
   НоваяБухОперация.Комментарий      = "Выделение ОС ТДЗ";
   НоваяБухОперация.Содержание          = "Разделение";
   НоваяБухОперация.СпособЗаполнения = "Вручную";
   
   НоваяБухОперация.Записать(РежимЗаписиДокумента.Запись);
   НоваяБухОперацияСсылка = НоваяБухОперация.Ссылка;

   // формируем движения в регистре Хозрасчетный - проводки
 
   РегСтрока = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
   РегСтрока.Отбор.Регистратор.Значение = НоваяБухОперацияСсылка;
   РегСтрока.Очистить();
   РегСтрока.Записать(Истина); //так НАДО! :)
 
   РегСтрока.Записывать = Истина;
   
   СуммаПоДокументу = 0;
   
   //Запросом:
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
   |    ХозрасчетныйДвиженияССубконто.СчетДт КАК СчетДт,
   |    ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК СубконтоДт1,
   |    ХозрасчетныйДвиженияССубконто.ВидСубконтоДт1 КАК ВидСубконтоДт1,
   |    ХозрасчетныйДвиженияССубконто.СубконтоДт2 КАК СубконтоДт2,
   |    ХозрасчетныйДвиженияССубконто.ВидСубконтоДт2 КАК ВидСубконтоДт2,
   |    ХозрасчетныйДвиженияССубконто.СубконтоДт3 КАК СубконтоДт3,
   |    ХозрасчетныйДвиженияССубконто.ВидСубконтоДт3 КАК ВидСубконтоДт3,
   |    ХозрасчетныйДвиженияССубконто.СчетКт КАК СчетКт,
   |    ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК СубконтоКт1,
   |    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт1 КАК ВидСубконтоКт1,
   |    ХозрасчетныйДвиженияССубконто.СубконтоКт2 КАК СубконтоКт2,
   |    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2 КАК ВидСубконтоКт2,
   |    ХозрасчетныйДвиженияССубконто.СубконтоКт3 КАК СубконтоКт3,
   |    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3 КАК ВидСубконтоКт3,
   |    ХозрасчетныйДвиженияССубконто.Сумма КАК Сумма,
   |    ХозрасчетныйДвиженияССубконто.КоличествоДт КАК КоличествоДт,
   |    ХозрасчетныйДвиженияССубконто.КоличествоКт КАК КоличествоКт,
   |    ХозрасчетныйДвиженияССубконто.СуммаНУДт КАК СуммаНУДт,
   |    ХозрасчетныйДвиженияССубконто.СуммаНУКт КАК СуммаНУКт,
   |    ХозрасчетныйДвиженияССубконто.СуммаПРДт КАК СуммаПРДт,
   |    ХозрасчетныйДвиженияССубконто.СуммаПРКт КАК СуммаПРКт,
   |    ХозрасчетныйДвиженияССубконто.СуммаВРДт КАК СуммаВРДт,
   |    ХозрасчетныйДвиженияССубконто.СуммаВРКт КАК СуммаВРКт
   |ИЗ
   |    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
   |ГДЕ
   |    ХозрасчетныйДвиженияССубконто.Регистратор = &ТекущийДокумент";
   
   Результат = Запрос.Выполнить();              
   Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
   Строка                                             = РегСтрока.Добавить();
   Строка.СчетКт                                      = Выборка.СчетДт;
   Строка.СубконтоКт                                  = Выборка.СубконтоДт1[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Выборка.ВидСубконтоДт1];
   Строка.СубконтоКт                               = Выборка.СубконтоДт2[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Выборка.ВидСубконтоДт2];
   Строка.СубконтоКт                                     = Выборка.СубконтоДт3[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Выборка.ВидСубконтоДт3];
   Строка.СчетДт                                      = Выборка.СчетКт;
   Строка.СубконтоДт                                  = Выборка.СубконтоКт1[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Выборка.ВидСубконтоКт1];
   Строка.СубконтоДт                                  = Выборка.СубконтоКт2[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Выборка.ВидСубконтоКт2];
   Строка.СубконтоДт                                  = Выборка.СубконтоКт3[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Выборка.ВидСубконтоКт3];
   Строка.Сумма                                       = Выборка.Сумма;
   Строка.СуммаНУКт                                   = Выборка.СуммаНУДт;
   Строка.СуммаНУДт                                   = Выборка.СуммаНУКт;
   Строка.СуммаПРКт                                   = Выборка.СуммаПРДт;
   Строка.СуммаПРДт                                   = Выборка.СуммаПРКт;
   Строка.СуммаВРКт                                   = Выборка.СуммаВРДт;
   Строка.СуммаВРДт                                   = Выборка.СуммаВРКт;
   //Строка.Количество                                = Выборка.Количество;
   Строка.Содержание                                  = "Загружено "+СокрЛП(Строка(ТекущаяДата()));
   Строка.Период                                      = Дата;
   СуммаПоДокументу                                   = СуммаПоДокументу + Выборка.Сумма;
   РегСтрока.Записать(Истина);
КонецЦикла;    
                   
   НоваяБухОперация.СуммаОперации = СуммаПоДокументу;
       
КонецПроцедуры
1 vicof
 
29.06.13
07:59
"ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Выборка.ВидСубконтоДт1"
напиши просто
Выборка.ВидСубконтоДт1
2 vicof
 
29.06.13
08:00
нет, вру
"Выборка.СубконтоДт1[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Выборка.ВидСубконтоДт1]"
вместо этого
Выборка.СубконтоДт1
3 ejiki
 
29.06.13
08:33
да я уже данный момент попробовал, а как же тогда быть с видом субконто? его определять не нужно?
4 hhhh
 
29.06.13
08:35
(3) не нужно
5 ejiki
 
29.06.13
08:36
(4) сейчас выдает что поле объекта не обнаружено
         (СубконтоКт)
Строка.СубконтоКт
6 hhhh
 
29.06.13
08:40
(5) ну так вообще-то

РегСтрока.Загрузить(Запрос.Выполнить().Выгрузить());

и всего делов.
7 hhhh
 
29.06.13
08:51
а так вообще-то попробуйте

Строка.СубконтоКт[0] = Выборка.СубконтоДт1

потому что Строка.СубконтоКт - это массив
8 ejiki
 
29.06.13
09:02
(7) вот и получается все 3 субконто это будет так

Строка.СубконтоКт[0] = Выборка.СубконтоДт1
Строка.СубконтоКт[1] = Выборка.СубконтоДт2
Строка.СубконтоКт[2] = Выборка.СубконтоДт3

а вот это не пойму (6) Можете пояснить идею?? или примерно как в коде кусок будет выглядеть
9 hhhh
 
29.06.13
09:09
(8) ну идея такая. Вы можете заменить в программе 150 строчек, на одну строчку, как в (6). Но естественно названия полей в запросе и в регистре должны совпадать. Они вроде у вас совпадают.

Кусок кода будет выглядеть так:

РегСтрока.Загрузить(Запрос.Выполнить().Выгрузить());
10 ejiki
 
29.06.13
09:16
названия это то что я устанавливаю после КАК ? если да то попробую, но есть одно НО Сумма ОперацияБух Она заполниться должна ведь из Итогов тогда? значит в запросе еще итоги собать нужно %) или я не прав?.
11 hhhh
 
29.06.13
09:26
ну, не обязательно в запросе. Можно в конце по РегСтрока пройти циклом и найти общую сумму.
12 ejiki
 
29.06.13
09:33
(11) хм.. сейчас попробую ;) спасибо за интересную идею)) впервые так буду делать))
13 ejiki
 
29.06.13
09:35
кстати говоря
вот так не сработало
Строка.СубконтоКт1[0]            = Выборка.СубконтоДт1

снова СубконтоКт1 не обнаруженно
14 ejiki
 
29.06.13
09:35
ой я овца)) увидел еденицу и понял косяк))
15 ejiki
 
29.06.13
09:39
(11) еще такой вопрос, а можно код как-то оптимизировать? до того как выведет ошибку операция выполняется висит почти минуту, видать где-то я набедокурил, ага?
16 ejiki
 
29.06.13
09:47
Прикол после того как указал вот так
Строка.СубконтоКт[0]            = Выборка.СубконтоДт1, документ сформировался, но! не заполнил субконто =\
17 hhhh
 
29.06.13
09:53
отладчиком надо смотреть
18 ejiki
 
29.06.13
09:58
понятно, я с ним если честно пока плохо управляюсь, только умею посмотреть что за результат сформировался запросом да так от функции к функции скаать %)

Вот скажи в Цикле я сумму собираю, где может быть ошибка? потомучто в итоге имею на остатке 0
19 ejiki
 
29.06.13
10:16
Вот, уже видит субконто но не может записать((


Запись не верна! Вид субконто "Статьи затрат" не доступен для данной записи! (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет); Номер строки: 1)
20 ejiki
 
29.06.13
10:21
Результат = Запрос.Выполнить();              
   Выборка = Результат.Выбрать();  вот на этом моменте из отладки вылетает, будто я её не провожу
21 ejiki
 
29.06.13
10:43
попробовал и так

РегСтрока.Загрузить(Запрос.Выполнить().Выгрузить());

на этом моменте виснет прям дико виснет((( а потом уже проходит операция с ошибкой
22 ejiki
 
29.06.13
10:48
дело в том что данная ошибка вылазиет т.к. вид субконто не поеределен
23 ejiki
 
29.06.13
10:53
Как передать здесь пустую ссылку на ПВХСубконто?
24 hhhh
 
29.06.13
12:17
(19) ну по рлану счтов посмлтреть, есть у этого счета субеонто статьи затрат:
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший