|
КД 2: перенос остатков РН в ОперациюБух | ☑ | ||
---|---|---|---|---|
0
GlebHappy
19.03.15
✎
01:57
|
Всем доброй ночи!
Сломал уже всю голову, не могу понять отчего получается так как получается :) Имеем две конфигурации - доработанную БП 1.6 и доработанную БП 3.0. Имеем в конфигурации-источнике регистр накопления КонтБланкиВОрганизации и соответствующий ему почти такой же регистр в базе-приемнике. Задача такова - перенести данные по регистру из источника в приемник, притом все старые движения (до 01.01.2015 свернуть в остатки). Решил перенос остатков делать стандартно (как показано в демобазе КД), а именно создал ПВД с произвольным алгоритмом: // Служебная ТЗ ТЗРегистровНакопления = Новый ТаблицаЗначений; ТЗРегистровНакопления.Колонки.Добавить("Имя"); НоваяСтрока = ТЗРегистровНакопления.Добавить(); НоваяСтрока.Имя = "КонтБланкиВОрганизации"; // Выгрузим остатки по регистру накопления КонтБланкиВОрганизации в бухгалтерскую операцию ЗапросПоОстаткам = Новый Запрос; ЗапросПоОстаткам.Текст = "ВЫБРАТЬ ПЕРВЫЕ 10 | КонтБланкиВОрганизацииОстатки.Организация КАК Организация, | ВЫБОР | КОГДА КонтБланкиВОрганизацииОстатки.МестоНахождения ССЫЛКА Справочник.ПодразделенияОрганизаций | ТОГДА КонтБланкиВОрганизацииОстатки.МестоНахождения | КОГДА КонтБланкиВОрганизацииОстатки.МестоНахождения ССЫЛКА Справочник.КонтАгенты | ТОГДА КонтБланкиВОрганизацииОстатки.МестоНахождения.Подразделение | КОНЕЦ КАК Подразделение, | КонтБланкиВОрганизацииОстатки.МестоНахождения КАК МестоНахождения, | КонтБланкиВОрганизацииОстатки.ВидБланка КАК ВидБланка, | КонтБланкиВОрганизацииОстатки.Серия КАК Серия, | КонтБланкиВОрганизацииОстатки.Номер КАК Номер, | КонтБланкиВОрганизацииОстатки.СтраховаяКомпания КАК СтраховаяКомпания, | КонтБланкиВОрганизацииОстатки.Испорченный КАК Испорченный, | СУММА(КонтБланкиВОрганизацииОстатки.Кол_воОстаток) КАК Кол_во |ИЗ | РегистрНакопления.КонтБланкиВОрганизации.Остатки(&ДатаОстатков, ) КАК КонтБланкиВОрганизацииОстатки | |СГРУППИРОВАТЬ ПО | КонтБланкиВОрганизацииОстатки.Организация, | КонтБланкиВОрганизацииОстатки.МестоНахождения, | КонтБланкиВОрганизацииОстатки.ВидБланка, | КонтБланкиВОрганизацииОстатки.Номер, | КонтБланкиВОрганизацииОстатки.СтраховаяКомпания, | КонтБланкиВОрганизацииОстатки.Испорченный, | ВЫБОР | КОГДА КонтБланкиВОрганизацииОстатки.МестоНахождения ССЫЛКА Справочник.ПодразделенияОрганизаций | ТОГДА КонтБланкиВОрганизацииОстатки.МестоНахождения | КОГДА КонтБланкиВОрганизацииОстатки.МестоНахождения ССЫЛКА Справочник.КонтАгенты | ТОГДА КонтБланкиВОрганизацииОстатки.МестоНахождения.Подразделение | КОНЕЦ, | КонтБланкиВОрганизацииОстатки.Серия | |УПОРЯДОЧИТЬ ПО | Организация, | Подразделение, | МестоНахождения, | ВидБланка, | Серия, | Номер, | СтраховаяКомпания, | Испорченный |АВТОУПОРЯДОЧИВАНИЕ"; ЗапросПоОстаткам.УстановитьПараметр("ДатаОстатков", ДатаНачала - 1); ТЗРезультата = ЗапросПоОстаткам.Выполнить().Выгрузить(); СписокОрганизаций = ТЗРезультата.Скопировать(, "Организация"); СписокОрганизаций.Свернуть("Организация"); Для Каждого СтрокаОрганизации Из СписокОрганизаций Цикл ИсходящиеДанные = Новый Структура; ИсходящиеДанные.Вставить("Организация", СтрокаОрганизации.Организация); ИсходящиеДанные.Вставить("Дата", ДатаНачала - 1); ИсходящиеДанные.Вставить("Комментарий", "## Остатки по регистру накопления КонтБланкиВОрганизации # " + СтрокаОрганизации.Организация.Наименование); ИсходящиеДанные.Вставить("Содержание", ИсходящиеДанные.Комментарий); ИсходящиеДанные.Вставить("СпособЗаполнения", " --- "); // позже уточню ИсходящиеДанные.Вставить("ТаблицаРегистровНакопления", ТЗРегистровНакопления); ТЗПоТекущейОрганизации = ТЗРезультата.Скопировать(Новый Структура("Организация", СтрокаОрганизации.Организация)); ИсходящиеДанные.Вставить("КонтБланкиВОрганизации", ТЗПОТекущейОрганизации); ВыгрузитьПоПравилу(, , ИсходящиеДанные, , "ОстаткиПоРН_КонтБланкиВОрганизации"); КонецЦикла; На ВЫБРАТЬ ПЕРВЫЕ 10 не обращайте внимания, остатки большие, поэтому я это временно поставил в качестве ограничителя.
Затем создал правило конвертации объекта с пустым источником и с приемником в виде ОперацииБух. Правило отрабатывает без ошибок, набор записей регистра в XML-файл выгружается. Но вот при загрузке происходит нечто странное. Документ создается, корректно заполняется, включая "Таблицу регистров накопления" - однако движений в нём нет. При этом что меня смущает: ради интереса добавил сообщение для вывода в алгоритм ПослеЗагрузки, оно выводится. Т.е. документ записывается и алгоритмы в установленном порядке выполняются, однако набор записей регистра чист. В чём может быть мой косяк? :) |
|||
1
Godofsin
19.03.15
✎
05:40
|
Активность = итстина;
|
|||
2
Godofsin
19.03.15
✎
05:41
|
Перепроведи документ, движения появляются?
|
|||
3
GlebHappy
19.03.15
✎
07:04
|
(1) Отчитываюсь, добавил в ПередВыгрузкой свойства Активность Значение = Истина;
При этом свойство внутри XML появляется: <Свойство Имя="Активность" Тип="Булево"> <Значение>true</Значение> </Свойство> Однако ничего не изменилось - операция всё равно загружается без движений (2) Увы, это ОперацияБух, она не проводится - наборы движений должны загружаться в неё при обмене, а они по какой-то сакральной причине не загружаются :) |
|||
4
ShoGUN
19.03.15
✎
07:05
|
(3) Операция точно является регистратором у регистров, в которые пытаешься загрузить данные?
|
|||
5
GlebHappy
19.03.15
✎
07:09
|
(3) Да, перепроверил это в первую очередь
|
|||
6
NcSteel
19.03.15
✎
07:11
|
В фале обмена движения есть?
Значит надо при загрузки записать движения . |
|||
7
Godofsin
19.03.15
✎
07:44
|
(3) Так там вроде должна была быть кнопочка - переключать активность, нету такой?
Офф: У меня одного теперь по нажатия на сообщение не подставляется номер в скобочках? |
|||
8
Godofsin
19.03.15
✎
07:48
|
Ну и можно в ПослеЗагрузки проверить и записать набор записей
|
|||
9
GlebHappy
19.03.15
✎
07:54
|
(6) Спс, попробую.
Я правильно понимаю - просто в ПриЗагрузке добавляем Объект.Записать() ? |
|||
10
nva_15
19.03.15
✎
07:58
|
Документ ОперацияБух - После загрузки:
Объект.Движения.НазваниеРегистра.Записывать = Истина; |
|||
11
GlebHappy
19.03.15
✎
08:03
|
(6) Подтверждаю. Действительно проблема была в этом.
Никогда раньше с таким нюансом не сталкивался и даже не подозревал, что документ и его движения при загрузке живут каждый своей собственной жизнью) Добавил в ПослеЗагрузки Объект.Движения.КонтБланкиВОрганизации.Записать();
и стало всё как надо :) |
|||
12
iHell
19.03.15
✎
09:58
|
(11) Объект.Движения.КонтБланкиВОрганизации.Записывать = Истина;
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |