|
КД 2.1 проводки в бухгалтерскую справку | ☑ | ||
---|---|---|---|---|
0
Grigory123456789
25.03.15
✎
16:53
|
добрый день, стоит задача из бух базы перетягивать проводки в базу приемник в док бух.справка
за основу пользовался v8: v8: Перенос бух операций через КД но споткнулся на следующем : в ПВД источник стоит пусто, приемник стоит "Бух.справка", способ выборки стоит "Произвольный алгоритм" текст : ВыборкаДанных = новый ТаблицаЗначений; ВыборкаДанных.Колонки.Добавить("Дата"); ВыборкаДанных.Колонки.Добавить("Комментарий"); ВыборкаДанных.Колонки.Добавить("Организация"); ВыборкаДанных.Колонки.Добавить("Номер"); ВыборкаДанных.Колонки.Добавить("Типовой"); Запрос = новый Запрос; Запрос.УстановитьПараметр("ДатаНач",началодня(ДатаНачала)); Запрос.УстановитьПараметр("ДатаКон",конецдня(ДатаОкончания)); Запрос.Текст = "ВЫБРАТЬ | ТиповойДвиженияССубконто.Период КАК Период1, | ТиповойДвиженияССубконто.Регистратор, | ТиповойДвиженияССубконто.НомерСтроки, | ТиповойДвиженияССубконто.Активность, | ТиповойДвиженияССубконто.СчетДт, | ТиповойДвиженияССубконто.СубконтоДт1, | ТиповойДвиженияССубконто.ВидСубконтоДт1, | ТиповойДвиженияССубконто.СубконтоДт2, | ТиповойДвиженияССубконто.ВидСубконтоДт2, | ТиповойДвиженияССубконто.СубконтоДт3, | ТиповойДвиженияССубконто.ВидСубконтоДт3, | ТиповойДвиженияССубконто.СчетКт, | ТиповойДвиженияССубконто.СубконтоКт1, | ТиповойДвиженияССубконто.ВидСубконтоКт1, | ТиповойДвиженияССубконто.СубконтоКт2, | ТиповойДвиженияССубконто.ВидСубконтоКт2, | ТиповойДвиженияССубконто.СубконтоКт3, | ТиповойДвиженияССубконто.ВидСубконтоКт3, | ТиповойДвиженияССубконто.Организация, | ТиповойДвиженияССубконто.ВалютаДт, | ТиповойДвиженияССубконто.ВалютаКт, | ТиповойДвиженияССубконто.СтруктурноеПодразделениеДт, | ТиповойДвиженияССубконто.СтруктурноеПодразделениеКт, | ТиповойДвиженияССубконто.Сумма, | ТиповойДвиженияССубконто.ВалютнаяСуммаДт, | ТиповойДвиженияССубконто.ВалютнаяСуммаКт, | ТиповойДвиженияССубконто.КоличествоДт, | ТиповойДвиженияССубконто.КоличествоКт, | ТиповойДвиженияССубконто.Содержание, | ТиповойДвиженияССубконто.НомерЖурнала, | ТиповойДвиженияССубконто.ВидРегламентнойОперации, | ТиповойДвиженияССубконто.МоментВремени |ИЗ | РегистрБухгалтерии.Типовой.ДвиженияССубконто(&ДатаНач, &ДатаКон, , , ) КАК ТиповойДвиженияССубконто"; Результат = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); Результат.колонки.Добавить("СубконтоДт"); Результат.колонки.Добавить("СубконтоКт"); Для Каждого Организация ИЗ Результат.Строки Цикл НоваяСтрока = ВыборкаДанных.Добавить(); НоваяСтрока.Организация = Организация.Организация; НоваяСтрока.Дата = началодня(ДатаОкончания); Для Каждого СтрокаТЧ ИЗ Организация.Строки Цикл СубконтоДт = Новый Соответствие; Если НЕ СтрокаТЧ.ВидСубконтоДт1=null И ЗначениеЗаполнено(СтрокаТЧ.СубконтоДт1) Тогда СубконтоДт.Вставить(СтрокаТЧ.ВидСубконтоДт1,СтрокаТЧ.СубконтоДт1); КонецЕсли; Если НЕ СтрокаТЧ.ВидСубконтоДт2=null И ЗначениеЗаполнено(СтрокаТЧ.СубконтоДт2) Тогда СубконтоДт.Вставить(СтрокаТЧ.ВидСубконтоДт2,СтрокаТЧ.СубконтоДт2); КонецЕсли; Если НЕ СтрокаТЧ.ВидСубконтоДт3=null И ЗначениеЗаполнено(СтрокаТЧ.СубконтоДт3) Тогда СубконтоДт.Вставить(СтрокаТЧ.ВидСубконтоДт3,СтрокаТЧ.СубконтоДт3); КонецЕсли; СтрокаТЧ.СубконтоДт = СубконтоДт; СубконтоКт = Новый Соответствие; Если НЕ СтрокаТЧ.ВидСубконтоКт1=null И ЗначениеЗаполнено(СтрокаТЧ.СубконтоКт1) Тогда СубконтоКт.Вставить(СтрокаТЧ.ВидСубконтоКт1,СтрокаТЧ.СубконтоКт1); КонецЕсли; Если НЕ СтрокаТЧ.ВидСубконтоКт2=null И ЗначениеЗаполнено(СтрокаТЧ.СубконтоКт2) Тогда СубконтоКт.Вставить(СтрокаТЧ.ВидСубконтоКт2,СтрокаТЧ.СубконтоКт2); КонецЕсли; Если НЕ СтрокаТЧ.ВидСубконтоКт3=null И ЗначениеЗаполнено(СтрокаТЧ.СубконтоКт3) Тогда СубконтоКт.Вставить(СтрокаТЧ.ВидСубконтоКт3,СтрокаТЧ.СубконтоКт3); КонецЕсли; СтрокаТЧ.СубконтоКт = СубконтоКт; КонецЦикла; ВТабл = Новый ТаблицаЗначений; Для Каждого Колонка Из Результат.Колонки Цикл ВТабл.Колонки.Добавить(Колонка.Имя, Колонка.ТипЗначения); КонецЦикла; Для Каждого СтрокаДерева Из Организация.Строки Цикл ЗаполнитьЗначенияСвойств(ВТабл.Добавить(), СтрокаДерева); КонецЦикла; НоваяСтрока.типовой = ВТабл.Скопировать(); Сообщить(""+НоваяСтрока.типовой.Количество()); КонецЦикла; при выгрузке данных из базы источника получаю след ошибку Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(7932)}: Поле объекта не обнаружено (ТабличнаяЧасть1). В документе бух.справка табличная часть называется ТабличнаяЧасть1, подскажите куда купать. |
|||
1
vicof
25.03.15
✎
16:55
|
Отладчик в руки, остановка по ошибке и в путь...объект анализировать
|
|||
2
Otkr
25.03.15
✎
16:56
|
ТЧ1 это точно ТЧ или все таки ТЗ?
|
|||
3
Grigory123456789
25.03.15
✎
16:58
|
в доке это данные->табличные части->ТабличнаяЧасть1
подскажите как отладивать, с кд второй раз сталкиваюсь |
|||
4
vicof
25.03.15
✎
17:05
|
Почитать справку по КД. Если вкратце, то в обработке универсального обмена есть несколько пунктов, которые нужно выполнить: сформировать модули выгрузки, сделать обработку, всатвить туда модули, запустить, отлаживать.
|
|||
5
Grigory123456789
25.03.15
✎
17:05
|
ок,спс уже читаю
|
|||
6
Grigory123456789
27.03.15
✎
07:40
|
День добрый, изучил отладку и снова наткнулся на грабли.
Сейчас произвольный алгоритм в ПВД выглядит след образом. ВыборкаДанных = новый ТаблицаЗначений; ВыборкаДанных.Колонки.Добавить("Дата"); ВыборкаДанных.Колонки.Добавить("Комментарий"); ВыборкаДанных.Колонки.Добавить("Организация"); ВыборкаДанных.Колонки.Добавить("Номер"); ВыборкаДанных.Колонки.Добавить("Типовой"); НоваяСтрока = ВыборкаДанных.Добавить(); НоваяСтрока.Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяОрганизация"); НоваяСтрока.Комментарий = Строка(НоваяСтрока.Организация) + " :"+Формат(ДатаНачала,"ДФ=dd.MM.yyyy") + " - " + Формат(ДатаОкончания,"ДФ=dd.MM.yyyy"); НоваяСтрока.Дата = ДатаОкончания; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТиповойДвиженияССубконто.Период, | ТиповойДвиженияССубконто.Регистратор, | ТиповойДвиженияССубконто.НомерСтроки, | ТиповойДвиженияССубконто.Активность, | ТиповойДвиженияССубконто.СчетДт, | ТиповойДвиженияССубконто.СубконтоДт1, | ТиповойДвиженияССубконто.ВидСубконтоДт1, | ТиповойДвиженияССубконто.СубконтоДт2, | ТиповойДвиженияССубконто.ВидСубконтоДт2, | ТиповойДвиженияССубконто.СубконтоДт3, | ТиповойДвиженияССубконто.ВидСубконтоДт3, | ТиповойДвиженияССубконто.СчетКт, | ТиповойДвиженияССубконто.СубконтоКт1, | ТиповойДвиженияССубконто.ВидСубконтоКт1, | ТиповойДвиженияССубконто.СубконтоКт2, | ТиповойДвиженияССубконто.ВидСубконтоКт2, | ТиповойДвиженияССубконто.СубконтоКт3, | ТиповойДвиженияССубконто.ВидСубконтоКт3, | ТиповойДвиженияССубконто.Организация, | ТиповойДвиженияССубконто.ВалютаДт, | ТиповойДвиженияССубконто.ВалютаКт, | ТиповойДвиженияССубконто.СтруктурноеПодразделениеДт, | ТиповойДвиженияССубконто.СтруктурноеПодразделениеКт, | ТиповойДвиженияССубконто.Сумма, | ТиповойДвиженияССубконто.ВалютнаяСуммаДт, | ТиповойДвиженияССубконто.ВалютнаяСуммаКт, | ТиповойДвиженияССубконто.КоличествоДт, | ТиповойДвиженияССубконто.КоличествоКт, | ТиповойДвиженияССубконто.Содержание, | ТиповойДвиженияССубконто.НомерЖурнала, | ТиповойДвиженияССубконто.ВидРегламентнойОперации, | ТиповойДвиженияССубконто.МоментВремени |ИЗ | РегистрБухгалтерии.Типовой.ДвиженияССубконто(&ДатаНач, &ДатаКон, Организация = &Организация) КАК ТиповойДвиженияССубконто"; Запрос.УстановитьПараметр("ДатаНач",началодня(ДатаНачала)); Запрос.УстановитьПараметр("ДатаКон",КонецДня(ДатаОкончания)); Запрос.УстановитьПараметр("Организация",НоваяСтрока.Организация); Результат = Запрос.Выполнить().Выгрузить(); Результат.колонки.Добавить("СубконтоДт"); Результат.колонки.Добавить("СубконтоКт"); Для Каждого СтрокаТЧ ИЗ Результат Цикл СубконтоДт = Новый Соответствие; Если НЕ СтрокаТЧ.ВидСубконтоДт1=null И ЗначениеЗаполнено(СтрокаТЧ.СубконтоДт1) Тогда СубконтоДт.Вставить(СтрокаТЧ.ВидСубконтоДт1,СтрокаТЧ.СубконтоДт1); КонецЕсли; Если НЕ СтрокаТЧ.ВидСубконтоДт2=null И ЗначениеЗаполнено(СтрокаТЧ.СубконтоДт2) Тогда СубконтоДт.Вставить(СтрокаТЧ.ВидСубконтоДт2,СтрокаТЧ.СубконтоДт2); КонецЕсли; Если НЕ СтрокаТЧ.ВидСубконтоДт3=null И ЗначениеЗаполнено(СтрокаТЧ.СубконтоДт3) Тогда СубконтоДт.Вставить(СтрокаТЧ.ВидСубконтоДт3,СтрокаТЧ.СубконтоДт3); КонецЕсли; СтрокаТЧ.СубконтоДт = СубконтоДт; СубконтоКт = Новый Соответствие; Если НЕ СтрокаТЧ.ВидСубконтоКт1=null И ЗначениеЗаполнено(СтрокаТЧ.СубконтоКт1) Тогда СубконтоКт.Вставить(СтрокаТЧ.ВидСубконтоКт1,СтрокаТЧ.СубконтоКт1); КонецЕсли; Если НЕ СтрокаТЧ.ВидСубконтоКт2=null И ЗначениеЗаполнено(СтрокаТЧ.СубконтоКт2) Тогда СубконтоКт.Вставить(СтрокаТЧ.ВидСубконтоКт2,СтрокаТЧ.СубконтоКт2); КонецЕсли; Если НЕ СтрокаТЧ.ВидСубконтоКт3=null И ЗначениеЗаполнено(СтрокаТЧ.СубконтоКт3) Тогда СубконтоКт.Вставить(СтрокаТЧ.ВидСубконтоКт3,СтрокаТЧ.СубконтоКт3); КонецЕсли; СтрокаТЧ.СубконтоКт = СубконтоКт; КонецЦикла; //ЭлементыФормы.ВыборкаДанных.СоздатьКолонки(); НоваяСтрока.типовой = Результат; но при выгрузке получаю - Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(7936)}: Метод объекта не обнаружен (Количество) Смотрю по отладчику и понимаю что в НоваяСтрока.типовой = Результат нет ТЗ, хотя в ПВД алгоритм стоит "Перед обработкой" |
|||
7
Grigory123456789
27.03.15
✎
09:26
|
&
|
|||
8
Grigory123456789
27.03.15
✎
10:11
|
есть идеи
|
|||
9
Grigory123456789
27.03.15
✎
12:37
|
?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |