|
Поле объекта не обнаружено (Выборка) Строка.СубконтоКт= Выборка.СубконтоДт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) ну по рлану счтов посмлтреть, есть у этого счета субеонто статьи затрат:
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |