Олег Сычев Заглянувший Сообщений: 217 |
конфигурация Автосервис релиз 1.6.9.32 При выгрузке в Бухгалтерию 3.0 ошибка: Ошибка в обработчике события ПередВыгрузкой (свойства) |
Олег Сычев Заглянувший Сообщений: 217 |
Методом подбора было выяснено, что ругается он на поступление в кассу, которое создано на основании заказ-наряда. Исключаем эти поступления из обмена и все хорошо. |
Олег, уточните, пожалуйста, какие правила для синхронизации брались для Автосервиса 1,6,9,32 и БП3,0? |
|
Олег Сычев Заглянувший Сообщений: 217 |
#4
13.03.2017 14:23:56
Те, которые идут в комплекте с дистрибутивом обновления. |
||
Олег, в Автосервисе 1,6,9,32 правила нужно брать из конфигурации, а для БП 3,0 файл внешних правил из шаблонов 1,6,9,32. |
|
Олег Сычев Заглянувший Сообщений: 217 |
В Автосервисе используются правила, встроенные в конфигурацию |
Олег Сычев Заглянувший Сообщений: 217 |
#8
14.03.2017 15:59:27
файл внешних правил из шаблонов 1,6,9,32. Изменено: Олег Сычев — 14.03.2017 16:00:39 |
||
Олег, если работ по заказ-наряду нет, то и Акт производственных работ не будет создаваться. Возможно ранее в данном заказ-наряде были работы? тогда снимите с регистрации все объекты, зарегистрируйте заново и сделайте синхронизацию повторно. |
|
Олег Сычев Заглянувший Сообщений: 217 |
#10
15.03.2017 16:00:21
Так я вам про что и говорю. Это я к тому, что иногда, заказ-наряд делается без работ. Просто с |
||
Светлана Сулименко Посетитель Сообщений: 8911 |
#11
15.03.2017 18:57:29 Олег, протестировала синхронизацию 1,6,9,32 и 3,0,48,21, заказ-наряд только с товарами загрузился корректно (в документ Реализация товаров). |
Конвертация данных: выгрузка ТЧ документа |
Я |
19.03.15 — 22:56
Нужно выгрузить ТЧ одного документа в ТЧ другого документа.
В ТЧ Приемника есть реквизит «Количество мест», которого нет в Источнике.
В КД в Правилах конвертации свойств «Количество мест» в обработчике «Перед выгрузкой» пишу:
Значение = 1;
При обмене программа все равно ругается:
Ошибка в обработчике события ПередВыгрузкой (свойства)
ПКО = ОтчетПроизводстваЗаСмену (Документ: Сборка запасов)
ПКС = 9 (—> КоличествоМест)
Объект = Производство 8 от 19.03.2015 (Документ объект: Производство)
СвойствоПриемника = КоличествоМест (Число)
Обработчик = ПередВыгрузкойСвойства
ОписаниеОшибки = Метод объекта не обнаружен (ПКС_ОтчетПроизводстваЗаСмену_Продукция_КоличествоМест_ПередВыгрузкойСвойства_9_24)
ПозицияМодуля = (1)
КСообщенияОбОшибках = 55
Подскажите,пожалуйста, в чем ошибка?
1 — 19.03.15 — 23:04
В ОбъектКоллекции менять нужно
2 — 19.03.15 — 23:10
(1) Подскажите,пожалуйста,где это находится ОбъектКоллекции?
3 — 19.03.15 — 23:12
Смотрю в типовых правилах, зачем-то же заполняют значение в обработчике «Перед выгрузкой»:
Выполнить(Алгоритмы.ЗаполнитьКоличествоВТабличнойЧасти);
ЗаполнитьКоличествоВТабличнойЧасти:
Если ТипЗнч(ОбъектКоллекции.ЕдиницаИзмерения) = Тип(«СправочникСсылка.ЕдиницыИзмерения») Тогда
Коэффициент = ОбъектКоллекции.ЕдиницаИзмерения.Коэффициент;
Если Коэффициент > 0 Тогда
Значение = ОбъектКоллекции.Количество * Коэффициент;
КонецЕсли;
Иначе
Значение = ОбъектКоллекции.Количество;
КонецЕсли;
4 — 19.03.15 — 23:15
В ПКС перед выгрузкой только это: Значение = 1; ?
5 — 19.03.15 — 23:16
«Количество мест» — числовой ?
6 — 19.03.15 — 23:17
(5) Да, Количество мест — это Число.
Пишу: Значение=1;
В ТипПриемника указано, что Число
7 — 19.03.15 — 23:17
Можно в послевыгрузки 1 присвоить во всех строках и не заморачиваться с пкс
8 — 19.03.15 — 23:18
(2) ОбъектКоллекции — доступен как раз в пкс реквизитов твоей тч, посмотри справку по обработчикам, там описано что это.
9 — 19.03.15 — 23:22
(7) Указал в ПослеВыгрузки, теперь на этот обработчик ругается:
Ошибка в обработчике события ПослеВыгрузки (свойства)
ПКО = ОтчетПроизводстваЗаСмену (Документ: Сборка запасов)
ПКС = 9 (—> КоличествоМест)
Объект = Производство 8 от 19.03.2015 (Документ объект: Производство)
СвойствоПриемника = КоличествоМест (Число)
КонвертируемоеЗначение = 5 000 (Число)
Обработчик = ПослеВыгрузкиСвойства
ОписаниеОшибки = Метод объекта не обнаружен (ПКС_ОтчетПроизводстваЗаСмену_Продукция_КоличествоМест_ПослеВыгрузкиСвойства_9_24)
ПозицияМодуля = (1)
КСообщенияОбОшибках = 57
10 — 19.03.15 — 23:26
(9) Невидя твоих правил сложно что-то сказать, передача значения должна работать. Попробуй в ПКО «после загрузки» обойти нужные тч.
11 — 19.03.15 — 23:26
(9) в послевыгрузки объекта и перебрать тч
12 — 19.03.15 — 23:27
Пардон.. Послезагрузки конечно
13 — 19.03.15 — 23:30
(10) https://yadi.sk/d/mddQ14XcfNdJw
Вот скриншот выложил,как примерно выглядит
14 — 19.03.15 — 23:36
(13) Ванга из меня плохая. Если у тебя в ПВД свой алгоритм или в ПКГС коллекцию собираешь, то там должно быть поле «КоличествоМест».
15 — 19.03.15 — 23:38
В «ПослеЗагрузки» самого документа есть такой код:
Если РежимЗагрузкиДанныхВИнформационнуюБазу() Тогда
УзелОбменаЗагрузкаДанных = Параметры.УзелОбменаЗагрузкаДанных;
Выполнить(Алгоритмы.ОбработатьОтчетПроизводстваЗаСмену );
КонецЕсли;
Захожу в этот алгоритм, дописываю:
Для каждого ТекСтрока Из Объект.Продукция Цикл
…..
ТекСтрока.КоличествоМест = 10;
Теперь при обмене не ругается, но КоличествоМест не заполняется указанным значением…
16 — 19.03.15 — 23:42
Может я неправильно правила создаю?..
1.Захожу в Базу-Источник, в ПланОбмена «ОбменУправлениеНебольшойФирмойБухгалтерия30».
2.Открываю макет «ПравилаОбмена», сохраняю в xml.
3.Загружаю правила в КД, правлю, выгружаю.
4.Меняю содержимое макета.
5. Запускаю базу, захожу в Синхронизацию.
6. Нажимаю «Загрузить правила», выбираю из конфигурации. Пишет: правила обновлены в инф.базу.
7. Меняю документ, чтобы попал в регистрацию. Выполняю синхронизацию.
Может что не так делаю?
17 — 19.03.15 — 23:46
(16) Сомнения возникают, потому что все, что ни меняю типовых правилах, пытаюсь подставить свое значение, при обмене никакой реакции. Но зато как залезу в «Перед выгрузкой»,например, программа начинает ругаться.
18 — 19.03.15 — 23:49
Если Сообщить в интересуемых местах?
19 — 19.03.15 — 23:51
Даже удалил текст из Алгоритмы.ОбработатьОтчетПроизводстваЗаСмену.
Там заполняются как раз оставшиеся реквизиты, которых нет в Источнике. Например, счет затрат.
При обмене все равно все заполнилось…странно
20 — 19.03.15 — 23:55
Так нельзя делать?
<ПередВыгрузкой>Сообщить(«111111»);</ПередВыгрузкой>
Опять ругается:
Ошибка в обработчике события ПередВыгрузкой (объекта коллекции)
21 — 20.03.15 — 00:17
Может кто знает, в какую обработку залезть отладчиком, чтобы поймать обработчик?
Хочу узнать, попадает программа в обработчик или нет.
В ПКГС ТЧ документа в обработчике «ПередОбработкой» собирается коллекция объектов, в т.ч. и поле «КоличествоМест»,которое поменять не получается никак. Но ощущение, что программа туда не попадает, потому что могу «абракадабру» там написать и обмен пройдет.
22 — 20.03.15 — 00:23
а что мешает после загрузки документа обойти табличную часть и проставить 1 в колонку?
23 — 20.03.15 — 03:56
(0)
В данном случае ПередВыгрузкой() текст модуля нужно прописать в выгружаемой конфигурации в обработке «ОбработчикВыгрузкиВ…», а ПослеЗагрузки() в конфигурации загружаемой конфигурации в обработке «ОбработчикЗагрузкиИз…»
24 — 20.03.15 — 06:14
Выгрузка из 8 в 8? Или из 7.7 в 8?
25 — 20.03.15 — 06:14
(24) -> (0)
26 — 20.03.15 — 06:23
(16) не надо менять макет. в п.6 просто делаешь загрузить из файла и пишешь файл, который выгрузил из кд.
27 — 20.03.15 — 06:43
Очень похоже, что автор выгружает из 1с77, и при этом не выгрузил обработчики и не записал их в модуль формы v77exp
28 — 20.03.15 — 08:31
(24) Выгрузка из 8.3 в 8.3
29 — 20.03.15 — 08:33
(26) В БП 3.0 программа просит архив загрузить с компа. В нем кроме правил обмена еще правила регистрации и правила обмена корреспондента нужно запаковать. Долго это, проще скопировать в макет в конфигураторе и F5
30 — 20.03.15 — 08:39
(26) сейчас другим способом смотрю, через обработку «УниверсальнаяЗагрузкавыгрузка», подставляю туда правила из КД и выгружаю. Вот что заметил в отладчике:
В КД В ПКГС ТЧ ТЧПродукция в обработчике «Перед загрузкой» собирается коллекция объектов:
Запрос = Новый Запрос;
Запрос.УстановитьПараметр(«Документ», Источник.Ссылка);
Запрос.УстановитьПараметр(«Дата», Источник.Дата);
Запрос.УстановитьПараметр(«РегВалюта», Параметры.НациональнаяВалюта);
Запрос.УстановитьПараметр(«УпрВалюта», Параметры.ВалютаУчета);
Запрос.Текст = «ВЫБРАТЬ
| МАКСИМУМ(СборкаЗапасовПродукция.НомерСтроки) КАК НомерСтроки,
| СборкаЗапасовПродукция.Ссылка КАК Документ,
| СборкаЗапасовПродукция.Номенклатура,
| СборкаЗапасовПродукция.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
| СборкаЗапасовПродукция.Спецификация,
| СУММА(СборкаЗапасовПродукция.Количество) КАК КоличествоМест,
| СУММА(ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(СборкаЗапасовПродукция.ЕдиницаИзмерения) = ТИП(Справочник.ЕдиницыИзмерения)
| И СборкаЗапасовПродукция.ЕдиницаИзмерения.Коэффициент > 0
| ТОГДА СборкаЗапасовПродукция.Количество * СборкаЗапасовПродукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ СборкаЗапасовПродукция.Количество
| КОНЕЦ) КАК Количество,
| ВЫБОР
| КОГДА СборкаЗапасовПродукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасовПродукция.Номенклатура.ЕдиницаИзмерения
| ИНАЧЕ СборкаЗапасовПродукция.ЕдиницаИзмерения
| КОНЕЦ КАК ЕдиницаИзмерения,
| ВЫБОР
| КОГДА СборкаЗапасовПродукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасовПродукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК Коэффициент
|ПОМЕСТИТЬ ВременнаяТаблицаПродукция
|ИЗ
| Документ.СборкаЗапасов.Продукция КАК СборкаЗапасовПродукция
|ГДЕ
| СборкаЗапасовПродукция.Ссылка = &Документ
|
|СГРУППИРОВАТЬ ПО
| СборкаЗапасовПродукция.Спецификация,
| СборкаЗапасовПродукция.Номенклатура,
| СборкаЗапасовПродукция.Ссылка,
| ВЫБОР
| КОГДА СборкаЗапасовПродукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасовПродукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ,
| ВЫБОР
| КОГДА СборкаЗапасовПродукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасовПродукция.Номенклатура.ЕдиницаИзмерения
| ИНАЧЕ СборкаЗапасовПродукция.ЕдиницаИзмерения
| КОНЕЦ,
| СборкаЗапасовПродукция.Номенклатура.НоменклатурнаяГруппа
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Запасы.Регистратор,
| Запасы.КоррНоменклатура КАК Продукция,
| Запасы.КоррСпецификация КАК СпецификацияПродукции,
| СУММА(Запасы.Сумма * ВЫБОР
| КОГДА &РегВалюта <> &УпрВалюта
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(КурсыВалютыЦены.Кратность, 0) > 0
| И ЕСТЬNULL(КурсыВалютыЦены.Курс, 0) > 0
| И ЕСТЬNULL(КурсыВалюты.Кратность, 0) > 0
| И ЕСТЬNULL(КурсыВалюты.Курс, 0) > 0
| ТОГДА КурсыВалютыЦены.Курс * КурсыВалюты.Кратность / (КурсыВалюты.Курс * КурсыВалютыЦены.Кратность)
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ 1
| КОНЕЦ) КАК СуммаЗатрат
|ПОМЕСТИТЬ ВременнаяТаблицаЗатраты
|ИЗ
| РегистрНакопления.Запасы КАК Запасы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта = &УпрВалюта) КАК КурсыВалютыЦены
| ПО (ИСТИНА)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта = &РегВалюта) КАК КурсыВалюты
| ПО (ИСТИНА)
|ГДЕ
| Запасы.Регистратор = &Документ
| И Запасы.ЗатратыНаВыпуск
| И Запасы.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
|
|СГРУППИРОВАТЬ ПО
| Запасы.КоррНоменклатура,
| Запасы.КоррСпецификация,
| Запасы.Регистратор
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВременнаяТаблицаПродукция.Номенклатура КАК Номенклатура,
| ВременнаяТаблицаПродукция.Спецификация КАК Спецификация,
| ВременнаяТаблицаПродукция.КоличествоМест КАК КоличествоМест,
| ВременнаяТаблицаПродукция.Количество КАК Количество,
| ВЫБОР
| КОГДА ВременнаяТаблицаЗатраты.СуммаЗатрат ЕСТЬ NULL
| ТОГДА 0
| ИНАЧЕ ВременнаяТаблицаЗатраты.СуммаЗатрат / ВременнаяТаблицаПродукция.Количество
| КОНЕЦ КАК ПлановаяСтоимость,
| ВременнаяТаблицаЗатраты.СуммаЗатрат КАК СуммаПлановая,
| ВременнаяТаблицаПродукция.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
| ВременнаяТаблицаПродукция.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ВременнаяТаблицаПродукция.Коэффициент КАК Коэффициент
|ИЗ
| ВременнаяТаблицаПродукция КАК ВременнаяТаблицаПродукция
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаЗатраты КАК ВременнаяТаблицаЗатраты
| ПО ВременнаяТаблицаПродукция.Документ = ВременнаяТаблицаЗатраты.Регистратор
| И ВременнаяТаблицаПродукция.Номенклатура = ВременнаяТаблицаЗатраты.Продукция
| И ВременнаяТаблицаПродукция.Спецификация = ВременнаяТаблицаЗатраты.СпецификацияПродукции
|
|УПОРЯДОЧИТЬ ПО
| ВременнаяТаблицаПродукция.НомерСтроки»;
Если Источник.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Разборка Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, «Документ.СборкаЗапасов.Продукция», «Документ.СборкаЗапасов.Запасы»);
КонецЕсли;
КоллекцияОбъектов = Запрос.Выполнить().Выгрузить();
Я меняю значения полей выборки:
|ВЫБРАТЬ
| ВременнаяТаблицаПродукция.Номенклатура КАК Номенклатура,
| ВременнаяТаблицаПродукция.Спецификация КАК Спецификация,
| 10 КАК КоличествоМест, //!!!!!!!
| 20 КАК Количество,
| ВЫБОР
| КОГДА ВременнаяТаблицаЗатраты.СуммаЗатрат ЕСТЬ NULL
| ТОГДА 0
| ИНАЧЕ ВременнаяТаблицаЗатраты.СуммаЗатрат / ВременнаяТаблицаПродукция.Количество
| КОНЕЦ КАК ПлановаяСтоимость,
| ВременнаяТаблицаЗатраты.СуммаЗатрат КАК СуммаПлановая,
| ВременнаяТаблицаПродукция.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
| ВременнаяТаблицаПродукция.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ВременнаяТаблицаПродукция.Коэффициент КАК Коэффициент
|ИЗ
| ВременнаяТаблицаПродукция КАК ВременнаяТаблицаПродукция
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаЗатраты КАК ВременнаяТаблицаЗатраты
| ПО ВременнаяТаблицаПродукция.Документ = ВременнаяТаблицаЗатраты.Регистратор
| И ВременнаяТаблицаПродукция.Номенклатура = ВременнаяТаблицаЗатраты.Продукция
| И ВременнаяТаблицаПродукция.Спецификация = ВременнаяТаблицаЗатраты.СпецификацияПродукции
|
|УПОРЯДОЧИТЬ ПО
| ВременнаяТаблицаПродукция.НомерСтроки»;
Если Источник.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Разборка Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, «Документ.СборкаЗапасов.Продукция», «Документ.СборкаЗапасов.Запасы»);
КонецЕсли;
КоллекцияОбъектов = Запрос.Выполнить().Выгрузить();
Смотрю в отладчике:
В коллекцию объектов попадают первоначальные значения.
Поэтому в итоге при обмена не вижу своих изменений.
31 — 20.03.15 — 08:40
Как такое может быть? Может, еще откуда-то собирается коллекция объектов?
32 — 20.03.15 — 13:12
(31) Что-то не так делаешь.
Отвлекись. Займись чем-нибудь другим минут на пятнадцать. Вернешься к этой задаче и быстро найдешь свой косяк.
33 — 20.03.15 — 22:57
(32) Понял по отладчику,откуда собирается КоллекцияОбъектов.
Оказалось, есть ПравилоВыгрузкиДанных. Там в процедуре «ПереОбработкой» документа написано «ВыгрузитьПоПравилу(Объект,,,, «ПеремещениеПродукции»);»
И обработчики брались из другого правила. И коллекция собиралась в другом месте.
Исправил коллекцию объектов в том месте, где она собирается.
Теперь другая проблема:
Когда я выгружаю данные в xml через «УниверсальныйОбменДаннымиXML» и смотрю файл, там все правильно, я вижу свои изменения.
Но когда я провожу Синхронизацию, то в файле выгрузки, я опять не вижу своих изменений.
34 — 20.03.15 — 23:01
В чем может быть ошибка?
35 — 20.03.15 — 23:05
Может, еще какие-то правила подключаются при синхронизации?
В плане обмена в макетах есть еще «Правила корреспонденции» и «Правила регистрации»
36 — 20.03.15 — 23:08
в обработке «УниверсальныйОбменДанныхXML» я хоть могу отладчиком посмотреть, что выгружается и почему. А при синхронизации как отследить?
37 — 20.03.15 — 23:28
И еще заметил такое:
В обработчике «Перед выгрузкой» реквизита ТЧ пишу:
Значение=999.
Выгружаю через УниверсальныйОбмен = все ок. В Файле значение=999.
Выгружаю через ПланОбмена — программа ругается.
Sun125
38 — 20.03.15 — 23:44
up
Ситуация такая УТ нетиповая, БП — типовая
делаю выгрузку через УниверсальныйОбменXML по стандартным привилам УТ с БП 2.0
и при нажатии Выгрузить данные вылазит ошибка:
Ошибка в обработчике события ПередВыгрузкойДанных (конвертация)
Обработчик = ПередВыгрузкойДанных (конвертация)
ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода
ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML(12582)
КодСообщения = 62
сам модуль перед выгрузкой вот:
Параметры.Вставить(«ВалютаРегламентированногоУчета», Константы.ВалютаРегламентированногоУчета.Получить());
Параметры.Вставить(«ВалютаУправленческогоУчета», Константы.ВалютаУправленческогоУчета.Получить());
Если НЕ Параметры.ПервыйОбмен Тогда
Параметры.Вставить(«ДатаНачалаВыгрузкиДокументов»,УзелДляОбмена.ДатаНачалаВыгрузкиДокументов);
Параметры.Вставить(«ПередаватьТолькоДокументыОтраженныеВБухгалтерскомУчете»,УзелДляОбмена.ПередаватьТолькоДокументыОтраженныеВБухгалтерскомУчете);
Параметры.Вставить(«ИспользоватьФильтрПоОрганизациям»,?(УзелДляОбмена.Организации.Количество()>0,Истина,Ложь));
Параметры.Вставить(«ИспользоватьФильтрПоСкладам»,?(УзелДляОбмена.Склады.Количество()>0,Истина,Ложь));
Параметры.Вставить(«ИспользоватьФильтрПоПодразделениям»,?(УзелДляОбмена.Подразделения.Количество()>0,Истина,Ложь));
Если Параметры.ИспользоватьФильтрПоОрганизациям Тогда
Параметры.Вставить(«МассивОрганизаций»,УзелДляОбмена.Организации.Выгрузить().ВыгрузитьКолонку(«Организация»));
КонецЕсли;
Если Параметры.ИспользоватьФильтрПоСкладам Тогда
Параметры.Вставить(«МассивСкладов»,УзелДляОбмена.Склады.Выгрузить().ВыгрузитьКолонку(«Склад»));
КонецЕсли;
Если Параметры.ИспользоватьФильтрПоПодразделениям Тогда
Параметры.Вставить(«МассивПодразделений»,УзелДляОбмена.Подразделения.Выгрузить().ВыгрузитьКолонку(«Подразделение»));
КонецЕсли;
МассивТиповДокументов = Новый Массив;
Для каждого МетаДокумент Из Метаданные.Документы цикл
МассивТиповДокументов.Добавить(Тип(«ДокументСсылка.» + МетаДокумент.Имя));
МассивТиповДокументов.Добавить(Тип(«ДокументОбъект.» + МетаДокумент.Имя));
КонецЦикла;
ОписаниеТиповДокументы = Новый ОписаниеТипов(МассивТиповДокументов);
Параметры.Вставить(«ОписаниеТиповДокументы»,ОписаниеТиповДокументы);
МассивТиповДокументов.Очистить();
МассивТиповДокументов.Добавить(Тип(«ДокументСсылка.СчетФактураВыданный»));
МассивТиповДокументов.Добавить(Тип(«ДокументСсылка.СчетФактураПолученный»));
МассивТиповДокументов.Добавить(Тип(«ДокументОбъект.СчетФактураПолученный»));
МассивТиповДокументов.Добавить(Тип(«ДокументОбъект.СчетФактураВыданный»));
ОписаниеТиповДокументы = Новый ОписаниеТипов(МассивТиповДокументов);
Параметры.Вставить(«ОписаниеТиповДокументыСФ»,ОписаниеТиповДокументы);
КонецЕсли;
// Документы расчетов (БП зачет аванса), несовместимые типы документов.
// Обмен не поддерживается.
СтруктураНевыгружаемыхДокументовРасчетов = Новый Структура();
// СписаниеСРасчетногоСчета
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомитентуОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.РеализацияТоваровУслуг»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомиссионераОПродажах»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«СписаниеСРасчетногоСчета», Массив);
// ПоступлениеНаРасчетныйСчет
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщикуИзНТТ»));
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщику»));
Массив.Добавить(Тип(«ДокументСсылка.АвансовыйОтчет»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеДопРасходов»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеТребованиеВыставленное»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеТоваровУслугВНТТ»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомитентуОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.ИнкассовоеПоручениеПереданное»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеПоручениеВходящее»));
Массив.Добавить(Тип(«ДокументСсылка.АккредитивПолученный»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеТоваровУслуг»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежныйОрдерПоступлениеДенежныхСредств»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«ПоступлениеНаРасчетныйСчет», Массив);
// ПоступлениеТоваровУслуг
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщикуИзНТТ»));
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщику»));
Массив.Добавить(Тип(«ДокументСсылка.ПриходныйКассовыйОрдер»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеДопРасходов»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомитентуОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеПоручениеВходящее»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомиссионераОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.РеализацияТоваровУслуг»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«ПоступлениеТоваровУслуг», Массив);
// ПриходныйКассовыйОрдер
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.КорректировкаДолгаПоВозвратнойТаре»));
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровОтПокупателя»));
Массив.Добавить(Тип(«ДокументСсылка.ПриходныйКассовыйОрдер»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеДопРасходов»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеТребованиеВыставленное»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомитентуОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.ИнкассовоеПоручениеПереданное»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеПоручениеВходящее»));
Массив.Добавить(Тип(«ДокументСсылка.АккредитивПолученный»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежныйОрдерПоступлениеДенежныхСредств»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«ПриходныйКассовыйОрдер», Массив);
// РасходныйКассовыйОрдер
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.КорректировкаДолгаПоВозвратнойТаре»));
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщикуИзНТТ»));
Массив.Добавить(Тип(«ДокументСсылка.ИнкассовоеПоручениеПолученное»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеПоручениеИсходящее»));
Массив.Добавить(Тип(«ДокументСсылка.РасходныйКассовыйОрдер»));
Массив.Добавить(Тип(«ДокументСсылка.АккредитивПереданный»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеТоваровУслугВНТТ»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежныйОрдерСписаниеДенежныхСредств»));
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщику»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеТребованиеПолученное»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомиссионераОПродажах»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«РасходныйКассовыйОрдер», Массив);
// РеализацияТоваровУслуг
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровОтПокупателя»));
Массив.Добавить(Тип(«ДокументСсылка.ИнкассовоеПоручениеПолученное»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеПоручениеИсходящее»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеДопРасходов»));
Массив.Добавить(Тип(«ДокументСсылка.РасходныйКассовыйОрдер»));
Массив.Добавить(Тип(«ДокументСсылка.АккредитивПереданный»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомитентуОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеТоваровУслуг»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеТребованиеПолученное»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомиссионераОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.АвансовыйОтчет»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«РеализацияТоваровУслуг», Массив);
// ПоступлениеДопРасходов
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщикуИзНТТ»));
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровПоставщику»));
Массив.Добавить(Тип(«ДокументСсылка.ПриходныйКассовыйОрдер»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеДопРасходов»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеТребованиеВыставленное»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомитентуОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.ИнкассовоеПоручениеПереданное»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеПоручениеВходящее»));
Массив.Добавить(Тип(«ДокументСсылка.АккредитивПолученный»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомиссионераОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.РеализацияТоваровУслуг»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежныйОрдерПоступлениеДенежныхСредств»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«ПоступлениеДопРасходов», Массив);
// ОтчетКомиссионераОПродажах
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.ВозвратТоваровОтПокупателя»));
Массив.Добавить(Тип(«ДокументСсылка.ДокументРасчетовСКонтрагентом»));
Массив.Добавить(Тип(«ДокументСсылка.ДокументРасчетовСКонтрагентом»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеПоручениеИсходящее»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеДопРасходов»));
Массив.Добавить(Тип(«ДокументСсылка.РасходныйКассовыйОрдер»));
Массив.Добавить(Тип(«ДокументСсылка.АккредитивПереданный»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеТоваровУслугВНТТ»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомитентуОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежныйОрдерСписаниеДенежныхСредств»));
Массив.Добавить(Тип(«ДокументСсылка.ПоступлениеТоваровУслуг»));
Массив.Добавить(Тип(«ДокументСсылка.ПлатежноеТребованиеПолученное»));
Массив.Добавить(Тип(«ДокументСсылка.ОтчетКомиссионераОПродажах»));
Массив.Добавить(Тип(«ДокументСсылка.АвансовыйОтчет»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«ОтчетКомиссионераОПродажах», Массив);
// КорректировкаДолга
Массив = Новый Массив();
Массив.Добавить(Тип(«ДокументСсылка.ОтражениеРеализацииТоваровИУслугНДС»));
Массив.Добавить(Тип(«ДокументСсылка.КорректировкаДолгаПоВозвратнойТаре»));
Массив.Добавить(Тип(«ДокументСсылка.ОплатаОтПокупателяПлатежнойКартой»));
Массив.Добавить(Тип(«ДокументСсылка.ОтражениеПоступленияТоваровИУслугНДС»));
СтруктураНевыгружаемыхДокументовРасчетов.Вставить(«КорректировкаДолга», Массив);
///////////////
Параметры.СтруктураНевыгружаемыхДокументовРасчетов = СтруктураНевыгружаемыхДокументовРасчетов;
Как решить такую проблему?
-
Нужно перекинуть только группы справочника номенклатуры, сам товар не нужен. Для этого использую Конвертация Данных 2. Создал правила обмена, в конвертацию написал такой обработчик:
Если Объект.ЭтоГруппа = ИСТИНА Тогда Отказ = ИСТИНА; КонецЕсли;
Посмотреть вложение 4091
Сохраняю правила обмена. Пытаюсь выгрузить информацию, а в ответ:
Что я не так делаю?Прикладывайте изображения на форум, т.к. сторонние ресурсы со временем умирают и другой пользователь, зайдя в тему, не увидит, что Вы хотели показать.
Вложения:
-
-
Offline
eviloid
Опытный в 1С- Регистрация:
- 15 май 2008
- Сообщения:
- 104
- Симпатии:
- 0
- Баллы:
- 26
Во-первых использовали не тот обработчик.
Нужно использовать обработчик «Перед выгрузкой» у правила конвертации объекта, в данном случае справочника «Номенклатура». В этом обработчике ссылка на выгружаемый объект доступна через переменную «Источник».Неверное условие в
Если Объект.ЭтоГруппа = ИСТИНА Тогда Отказ = ИСТИНА; КонецЕсли;
У вас получается — «Если объект это группа справочника, тогда не выгружать его», а Вам, как я понял, надо наоборот:
Если Источник.ЭтоГруппа = Ложь Тогда Отказ = Истина;
:unsure:
-
Не, что-то не так. Сделал как порекомендовали:
Посмотреть вложение 4094
Пытаюсь сделать выгрузку, в ответ:
Хелп! :unsure:Вложения:
-
-
:unsure: Ура, разобрался!
Вот как надо было:
Посмотреть вложение 4095
Т.е. надо было обработчик запускать не «Перед выгрузкой данных», а «Перед выгрузкой объектов».
Все просто. Спасибо Evld за «ЭтоГруппа = Ложь»Вложения:
-
-
Offline
eviloid
Опытный в 1С- Регистрация:
- 15 май 2008
- Сообщения:
- 104
- Симпатии:
- 0
- Баллы:
- 26
Отлично!
Я, правда, предлагал другое решение:
Поместить кодЕсли Источник.ЭтоГруппа = Ложь Тогда Отказ = Истина; КонецЕсли;
в обработчик «Перед выгрузкой» в «Правила конвертации объектов» справочника «Номенклатура»
вот картинка:
Посмотреть вложение 4097Но в контексте Вашей задачи можно и так, как сделали Вы :unsure:
Вложения:
-
prav.png
- Размер файла:
- 30,8 КБ
- Просмотров:
- 442
-
Offline
Саша82
Активный ученик- Регистрация:
- 11 окт 2007
- Сообщения:
- 307
- Симпатии:
- 0
- Баллы:
- 26
А не подскажите что надо сделать чтоб поместить все выгружаемые группы в определенную группу в загружаемой базе?
-
Offline
sergep
- Регистрация:
- 6 май 2009
- Сообщения:
- 23
- Симпатии:
- 0
- Баллы:
- 1
после загрузки
Если НЕ ЗначениеЗаполнено(Объект.Родитель ) Тогда Объект.Родитель = Справочники.Номенклатура.НайтиПоНаименованию("Выгружено из ТИС"); Объект.Записать(); КонецЕсли;
-
Offline
Саша82
Активный ученик- Регистрация:
- 11 окт 2007
- Сообщения:
- 307
- Симпатии:
- 0
- Баллы:
- 26
А что сделать чтоб артикул номенклатуры заполнить кодом если код создается автоматически?
-
Offline
Саша82
Активный ученик- Регистрация:
- 11 окт 2007
- Сообщения:
- 307
- Симпатии:
- 0
- Баллы:
- 26
Объект.Записать(); не надо. А как сделать чтоб можно было выбирать в параметрах? Я создал параметр «груп» поставил галку «Диалог» «Передавать при выгрузки» «При загрузки» написал:
группу в диалоге выбираю а при загрузки выдает ошибку что тип не определен. -
Offline
Саша82
Активный ученик- Регистрация:
- 11 окт 2007
- Сообщения:
- 307
- Симпатии:
- 0
- Баллы:
- 26
Если убираю галочку «Работа с параметрами в формате версии 2.01» то ошибки не возникает но и параметр выбрать нельзя.
Спецы 1С для удобства конечного пользователя создали специальные решения, позволяющие по нажатию кнопки выгрузить данные. Попробовал и я…
1.1. Ошибка записи объекта:
Тип объекта = Регистр сведений запись: Настройки учета страховых взносов
Описание ошибки = Ошибка при вызове метода контекста (Записать): Запись не верна! Значение поля «Организация» не может быть пустым.
Устранение ошибки: В ПКО «УчетСтраховыхВзносовНастройкиОрганизаций» для свойства «Организация» не указано ПКО
1.2. Ошибка в обработчике события ПередЗагрузкойДанных (конвертация)
Описание ошибки = Ошибка при вызове метода контекста (СоздатьНабор): Недопустимое значение параметра (параметр номер ‘1’)
Устранение ошибки: Константа «ВедетсяДеятельностьПоДоговорамКомиссииНаПродажу» не существует. Удалил ссылку на нее.
1.3. Ошибка при загрузке данных: Поле объекта не обнаружено (ПоложенияПереходногоПериодаУСН)
Устранение ошибки: Указанный реквизит регистра сведений «УчетнаяПолитикаОрганизаций» переименован в «УдалитьПоложенияПереходногоПериодаУСН». Отключил для переноса.
1.4. Ошибка записи объекта
Тип объекта = Вид вычетов НДФЛ
Описание ошибки = Ошибка при вызове метода контекста (Записать): Не удалось записать «103 (Вид вычетов НДФЛ)»!
Устранение ошибки: Для ПКО «ВидыВычетовНДФЛ» поставил крыж «Не замещать существующие». Непонятно только почему для предопределенных объектов это не отслеживается в процессе загрузки по умолчанию!?
1.5. Ошибка записи объекта
Тип объекта = Договор
Описание ошибки = Ошибка при вызове метода контекста (Записать): Значение поля «Контрагент» не заполнено или заполнено неверно
Устранение ошибки: Так и не понял как с зтим бороться. Отключил загрузку реквизитов контрагента «Основной договор» и «Основной счет». Поставил крыж «Загружать только новые».
После выгрузки объекта отключил проверку ИНН и КПП
Если НЕ Объект.ЭтоГруппа Тогда Объект.ИННВведенКорректно = Истина; Объект.КППВведенКорректно = Истина; КонецЕсли;
Вроде помогло.
1.6. Ошибка записи объекта
Тип объекта = Регистр сведений запись: Текущие кадровые данные сотрудников
Описание ошибки = Ошибка при вызове метода контекста (Записать): Ошибка при выполнении: Значение не является значением объектного типа (Ссылка)
Устранение ошибки: Такое ощущение, что шло зацикливание (при загрузке) когда в регистре шла ссылка на сотрудника, а в нем — на данный регистр, но почему при загрузке? Выгрузилось то нормально!
Создал ПКО «СотрудникиСсылка» (не замещать, а только новые) со свойствами для поиска:
- Наименование
- Организация
- Физическое лицо
и сослался на него в свойстве «Сотрудник» указанного регистра
1.7. Ошибка в обработчике события ПослеЗагрузкиДанных (конвертация)
Описание ошибки = Поле объекта не обнаружено (Организация)
Устранение ошибки: Для параметра «ОРГАНИЗАЦИЯ» проставил крыж «При загрузке» и указал правило конвертации «Организации»
1.8. Ошибка записи объекта
Тип объекта = Регистр сведений запись: Текущая тарифная ставка сотрудников
Описание ошибки = Ошибка при вызове метода контекста (Записать): Запись не верна! Значение поля «Физическое лицо» не может быть пустым!:
Устранение ошибки: Вместо двух свойств «Сотрудник» в правиле конвертации достаточно одного. И добавить «ФизическоеЛицо», «ТекущаяОрганизация»
Для «Сотрудник» назначил правило «СотрудникСсылка».
2. Теперь пытаемся загрузить документы.
2.1 Не проводятся после загрузки!
прописал в обработчик «Перед конвертацией объекта»
Если ТипЗначенияСтр(Источник) = "Документ" Тогда Если (Источник.Вид() = "Счет") ИЛИ (Источник.Вид() = "Доверенность") ИЛИ (Источник.Вид() = "ПлатежноеПоручение") Тогда Если Источник.ПометкаУдаления() = 0 Тогда РежимЗаписи = "Проведение"; КонецЕсли; Иначе Если Источник.Проведен() = 1 Тогда РежимЗаписи = "Проведение"; КонецЕсли; КонецЕсли; КонецЕсли;
2.2 Ошибка при загрузке данных: Поле объекта не обнаружено (Услуги)
Смею предположить, что это «Счет на оплату покупателю» в котором указанную табличную часть подготовили к удалению.
Устранение ошибки: В ПКО «Счет» ее отключил и пометил на удаление. В коллекцию «Товары» добавил свойство «Содержание» и прописал его заполнение.
2.3 Ошибка записи объекта
Тип объекта = Договор
Описание ошибки = Ошибка при вызове метода контекста (Записать): Поле «Вид договора» заполнено некорректно.
Существуют документы, проведенные по договору. Реквизит не может быть изменен.
Устранение ошибки: В ПКО «Договоры контрагентов» свойство «ВидДоговора» вытащил из группы и назначил отбор по его значению (для элемента)
В ПКО «ДоговорыКонтрагентовПоВидам» — то же самое (не знаю зачем оно вобще нужно!).
Вообще с определением вида договора реальная проблема!
В ПКО документа «Счет» для свойства «Договор» перед выгрузкой прописал
Параметры.ПараметрыАлгоритмов.Установить("Документ",Источник); Параметры.ПараметрыАлгоритмов.Установить("Договор",Источник.Договор); ОпределитьВидДоговора();
подкорректировал апгоритм ОпределитьВидДоговора
1. Для документа «Платежное поручение».
2. Для пустого документа, когда передается только счет б/у.
В ПКО «ДоговорыКонтрагентов» закомментировал
//Параметры.ПараметрыАлгоритмов.Установить("ВидДоговора",""); //Параметры.ПараметрыАлгоритмов.Установить("ВесДоговора","");
Похоже, из-за этого вид договора не передавался в соответствующее свойство при выгрузке!
2.4 Ошибка записи объекта
Тип объекта = Сотрудник
Описание ошибки = Ошибка при вызове метода контекста (Записать): Значение «0000000009» поля «Таб. номер» не уникально
Устранение ошибки: Проблема загрузки Документа типа Выписка при перечислении зарплаты на л/с сотрудников. Попытка конвертации сотрудников в контрагенты.
В моей конкретной ситуации расчет зарплаты и кадровый учет ведется в ЗиК 77 (сейчас переходим на ЗУП 83) и переносится в бухгалтерию СВОДНО. Поэтому решил не заморачиваться, а просто прорисовать конкретную ситуацию.
Для того, чтобы добиться желаемого результата при переносе, пришлось:
- добавить новый параметр «УчетПоСтрудникамСводно» (Зарплата без детализации по сотрудникам);
- закомментировать несколько строк кода конвертации «Перед загрузкой данных»;
- настроил вручную параметры учета для блока «Зарплата и кадры».
2.5. Перекроил модуль «При выгрузке» ПКО «Выписка_Списание» (там много всего «по мелочам»)
Ну, например, добавил реквизит «Налог».
А в платежном поручении — «Налог» и «Вид операции».
После загрузки остатков обнаружил, что по забалансовому счету «001» виды субконто поменялись местами. Откорректировал алгоритм «Добавить Проводку».
2.6. Ошибка записи объекта
Тип объекта = Регистр сведений запись: Процент ЕНВД для учета затрат на зарплату
Описание ошибки = Ошибка при вызове метода контекста (Записать): Запись не верна! Значение поля «Организация» не может быть пустым!:
Устранение ошибки: В ПКО «ВводПроцентаДеятельностиЕНВД» для свойства «Организация» прописал правило конвертации
3. Кроме всего прочего
Для плана не все значения счетов могут быть синхронизированы. В нашем конкретном случае отсутствовали добавленные в ручную счета:
- 50.2 с 50.02 «Операционная касса»;
- 68.8 и 68.08 «Налог на имущество»;
- субсчета счета 68.4 «Налог на прибыль».
Их нужно добавить в список значений ПКО «План счетов — Хозрасчетный»