|
КД2 Документ в Операцию | ☑ | ||
---|---|---|---|---|
0
GreyTim
14.04.14
✎
17:29
|
Из самописной конфы надо перекинуть документ в Бухню в виде операции с соответствующими проводками. В результате операция появляется, но пустая. Проблема, скорее всего, в том, что обмен не заходит в часть, касающуся загрузки (ПередЗагрузкой, ПриЗагрузке и ПослеЗагрузки). Что ему может мешать?
|
|||
1
Wobland
14.04.14
✎
17:30
|
а ты уже перестал пить коньяк по утрам?
|
|||
2
GreyTim
14.04.14
✎
17:32
|
(1) стараюсь держать себя в руках.
|
|||
3
vicof
14.04.14
✎
17:43
|
(0) Юзай отладку обработчиков в универсальном обмене
|
|||
4
GreyTim
14.04.14
✎
18:00
|
(3) Спасибо за наводку, пойду разбираться с механизмом.
|
|||
5
SleepyHead
гуру
14.04.14
✎
18:44
|
В ПКО "После загрузки" пропиши
Объект.Движения.Проводки.Записывать=Истина; |
|||
6
GreyTim
15.04.14
✎
09:01
|
(5) Да дело в том, что обмен не заходит ни в "ПослеЗагрузки", ни в "При", ни в "Перед". Пытаюсь с этим разобраться.
|
|||
7
SleepyHead
гуру
15.04.14
✎
09:46
|
ПВД спроизвольным алгоритмом?
|
|||
8
GreyTim
15.04.14
✎
09:52
|
(7) да, запросом получаем движения документа и, затем, создаем соответствующие проводки в "ПослеЗагрузки"
|
|||
9
vicof
15.04.14
✎
09:54
|
А почему проводки при выгрузке не создавать?
|
|||
10
GreyTim
15.04.14
✎
09:54
|
запрос по движениям не пустой (выводится сообщение о количестве строк в рез. таблице), а вот дальше затык. Операция есть, проводок нет.
|
|||
11
GreyTim
15.04.14
✎
09:56
|
(9) есть опасение, что на этот момент операции в бух. еще нет, но сейчас попробую.
|
|||
12
vicof
15.04.14
✎
10:00
|
(11) Как так? Ты же проводки на основании движений создаешь.
|
|||
13
GreyTim
15.04.14
✎
10:02
|
(12) Да, на оснований движений, но в "ПриВыгрузке" Объекта еще нет, обмен выдает ошибку. Т.е., как я понимаю, проводки некуда записывать. Поэтому использовали "ПозлеЗагрузки"
|
|||
14
vicof
15.04.14
✎
10:06
|
(13) А с чего объект должен быть? При выгрузке у тебя есть Источник. И значеняи полей можешь инициализировать как тебе вздумается. Классическую книжку пробовал читать?
|
|||
15
GreyTim
15.04.14
✎
10:10
|
(14) Да кто ж спорит, что Источник есть, только дальше-то что? Я не совсем ход ваших мыслей ловлю. Если идея в (9), то нужен Объект, куда я проводки вставлять буду? Из Источника в Источник? Или я опять вас не понял.
|
|||
16
Йохохо
15.04.14
✎
10:11
|
(13) а есть понимание в которой базе исполняется то и то? возьмите правила обмена УТ-БП, там есть рабочий пример
|
|||
17
GreyTim
15.04.14
✎
11:08
|
(16) Посмотрел типовой обмен. Там создается некая ТЗ, в которой все Бух проводки. Не совсем понял, как эта таблица связывается с целевой бухоперацией.
|
|||
18
SleepyHead
гуру
15.04.14
✎
11:10
|
В ПКО кеширование отключено?
|
|||
19
SleepyHead
гуру
15.04.14
✎
11:12
|
(17) По сути это перенос в регистр бухгалтерии с привязкой к регистратору.
Когда у вас настраиваются реквизиты приемника, нужно из свойств документа-приемника выбрать нужный регистр бухгалтерии (он выглядит как ПКГС). |
|||
20
GreyTim
15.04.14
✎
11:27
|
(18) как галка называется, прям кеширование не нашел.
(19) вроде как, понятно. копаюсь дальше... |
|||
21
SleepyHead
гуру
15.04.14
✎
11:32
|
"Не запоминать выгруженные объекты"
|
|||
22
GreyTim
15.04.14
✎
11:37
|
(21) Не стоит
|
|||
23
SleepyHead
гуру
15.04.14
✎
11:52
|
Так надо поставить, это обязательное требование для ПВД с произвольным алгоритмом
|
|||
24
GreyTim
15.04.14
✎
11:57
|
(23) Ставлю и пробую
|
|||
25
GreyTim
15.04.14
✎
12:08
|
Со старым вариантом не помогло (
|
|||
26
Йохохо
15.04.14
✎
12:14
|
(25) кажется у тебя нет старого варианта, переделывай полностью по примеру из типовых, а старый вариант выкинь
|
|||
27
GreyTim
15.04.14
✎
12:16
|
Ребят, а почему нельзя предварительно создать запрос. Используя его, создать ПКС, где получить необходимую табличку и, наконец, заполнить, уже созданную пустую операцию, проводками по этой таблице в "ПослеЗагрузки"?
|
|||
28
vicof
15.04.14
✎
12:19
|
Потому что при выгрузке эту табличку можно создать. Хоть запросом, хоть руками.
|
|||
29
GreyTim
15.04.14
✎
12:22
|
(28) Согласен, можно. Только заполнить операцию в бухне по этой табличке в "ПослеЗаписи" не выходит, потому что не заходит извилистая туда, хоть ты тресни.
|
|||
30
vicof
15.04.14
✎
12:23
|
Все заходит, только надо руки вырастить.
Давай хотя бы скрины. |
|||
31
Йохохо
15.04.14
✎
12:23
|
(27) потому, что запрос и пкс в базе источнике, а чтобы что-то получить в послезагрузки в базе приемнике, это что-то надо правильно записать в иксэмель файлик. Причем правильность не зависит от того, насколько ты хочешь, чтобы было правильно, а зависит от правил конвертации
|
|||
32
GreyTim
15.04.14
✎
12:27
|
(30) скрины чего конкретно, помогут отцу русской демократии?
|
|||
33
vicof
15.04.14
✎
12:29
|
(32) Пко, пвд и пкс, которыми ты пытаешься выгружать иконвертировать данные
|
|||
34
GreyTim
15.04.14
✎
12:29
|
(31) у меня ощущение, что при конвертации Док в ОперБух (27) вообще нельзя использовать.
|
|||
35
vicof
15.04.14
✎
12:31
|
(34) Можешь жить со своими ощущениями, можешь скрины запостить
|
|||
36
GreyTim
15.04.14
✎
12:33
|
(35) делаю )
|
|||
37
SleepyHead
гуру
15.04.14
✎
12:38
|
(34) можно
|
|||
38
GreyTim
15.04.14
✎
12:43
|
||||
39
GreyTim
15.04.14
✎
12:44
|
http://i57.fastpic.ru/big/2014/0415/90/b0d1eba706ff842c67172f4512566090.jpg
http://i57.fastpic.ru/big/2014/0415/1c/642cb7887b51893a03756941a0eefc1c.jpg http://i57.fastpic.ru/big/2014/0415/57/b7dc363ea75f65901347a94113f9b457.jpg http://i57.fastpic.ru/big/2014/0415/ac/eb4087c731fbde9e4cc04fa853399fac.jpg |
|||
40
GreyTim
15.04.14
✎
12:46
|
Код в "ПослеЗагрузки"
Если ОбъектНайден и Не Источник.Проведен Тогда Сообщить("#1"); Объект.ПометкаУдаления = Истина; Объект.Записать(); ДвиженияБУ = Объект.Движения.Хозрасчетный; ДвиженияБУ.Очистить(); ДвиженияБУ.Записать(); Иначе Сообщить("#2"); Объект.Записать(); ДвиженияБУ = Объект.Движения.Хозрасчетный; ДвиженияБУ.Очистить(); ТаблицаОбхода = ПараметрыОбъекта["ТаблицаДвиженийИсточника"]; Сообщить("Таблица обхода " + ТаблицаОбхода.Количество()); Для каждого Строка из ТаблицаОбхода Цикл НовоеДвижение = ДвиженияБУ.Добавить(); Если Строка.ВидЦенности = "Спецодежда" тогда НовоеДвижение.СчетДт = ПланыСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный; НовоеДвижение.СчетКт = ПланыСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный; ИначеЕсли Строка.ВидЦенности = "Инвентарь и хозяйственные принадлежности" тогда НовоеДвижение.СчетДт = ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации; НовоеДвижение.СчетКт = ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации; Иначе НовоеДвижение.СчетДт = ПланыСчетов.Хозрасчетный.СпецоснасткаВЭксплуатацииВспомогательный; НовоеДвижение.СчетКт = ПланыСчетов.Хозрасчетный.СпецоснасткаВЭксплуатацииВспомогательный; КонецЕсли; НовоеДвижение.Активность = Истина; НовоеДвижение.КоличествоДт = Строка.Количество; НовоеДвижение.КоличествоКт = Строка.Количество; НовоеДвижение.Сумма = Строка.Сумма; НовоеДвижение.Организация = Объект.Организация; НовоеДвижение.Период = Объект.Дата; НовоеДвижение.Регистратор = Объект.Ссылка; НужнаяНоменклатура = Справочники.Номенклатура.НайтиПоКоду(Строка.КодНоменклатуры); БухгалтерскийУчет.УстановитьСубконто(НовоеДвижение.СчетДт, НовоеДвижение.СубконтоДт, "Номенклатура", НужнаяНоменклатура); БухгалтерскийУчет.УстановитьСубконто(НовоеДвижение.СчетКт, НовоеДвижение.СубконтоКт, "Номенклатура", НужнаяНоменклатура); Сообщить("Номенклатура"); НужнаяПартия = Документы.ПередачаМатериаловВЭксплуатацию.НайтиПоНомеру(Строка.НомерПартии, Строка.Датапартии); БухгалтерскийУчет.УстановитьСубконто(НовоеДвижение.СчетДт, НовоеДвижение.СубконтоДт, "ПартииМатериаловВЭксплуатации", НужнаяПартия); БухгалтерскийУчет.УстановитьСубконто(НовоеДвижение.СчетКт, НовоеДвижение.СубконтоКт, "ПартииМатериаловВЭксплуатации", НужнаяПартия); Сообщить("Парития"); БухгалтерскийУчет.УстановитьСубконто(НовоеДвижение.СчетДт, НовоеДвижение.СубконтоДт, "РаботникиОрганизаций", Справочники.ФизическиеЛица.НайтиПоКоду(Строка.Принимающий)); БухгалтерскийУчет.УстановитьСубконто(НовоеДвижение.СчетКт, НовоеДвижение.СубконтоКт, "РаботникиОрганизаций", Справочники.ФизическиеЛица.НайтиПоКоду(Строка.Передающий)); Сообщить("Работник"); КонецЦикла; //ДвиженияБУ.Записать(); Объект.Записать(); Объект.Движения.Проводки.Записывать=Истина; КонецЕсли; |
|||
41
vicof
15.04.14
✎
12:58
|
В пвд - делаешь запрос, который будет содержать поля и табличную часть выгрузки, псевдонимы полей должны совпадать с наименованиями свойств приемника.
В пко можешь оставить пустой источник. |
|||
42
GreyTim
15.04.14
✎
13:09
|
(41) мысль уловил, буду пробовать. Спасибо.
|
|||
43
Йохохо
15.04.14
✎
13:11
|
Источник.Проведен это точно ошибка, нету там источника. Может потому и не заходит? Плюс надо посмотреть, что записано в файле выгрузки, передача ТЗ параметром не очевидная возможность
|
|||
44
SleepyHead
гуру
15.04.14
✎
13:12
|
а зачем пометку удаления ставить, не понял
|
|||
45
SleepyHead
гуру
15.04.14
✎
13:13
|
Объект.Движения.Проводки.Записывать=Истина;
это должно быть в самом начале, по моему.. |
|||
46
SleepyHead
гуру
15.04.14
✎
13:14
|
А вообще сделано методически неверно, все, что написано в коде в 40 посте, нужно переносить в ПКС, а в после загрузки должно быть только то, что в (45)
|
|||
47
GreyTim
15.04.14
✎
13:15
|
Все учту.
|
|||
48
SleepyHead
гуру
15.04.14
✎
13:27
|
Если часто делаешь переносы, есть смысл купить гилевский курс по КД, просто глаза откроются. Там твой пример разбирается достаточно подробно, как очень типичный.
|
|||
49
GreyTim
15.04.14
✎
13:30
|
(48) Это книга? Диск?
|
|||
50
SleepyHead
гуру
15.04.14
✎
13:31
|
http://курсы-по-1с.рф/ и смотри ссылки по курсам. я отучился по КД в декабрьском потоке.
|
|||
51
GreyTim
15.04.14
✎
13:32
|
Все, понял. Спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |