#0
by AlexeyAlexeyAlexey
У меня в конвертации между ЗУП и КА реализован следующий перенос. Переносим справочник "Способы отражения в реглментированном учете" Там в одной из проводок есть элементы справочника "Контрагенты". На данный момент выгрузка контрагентов происходит так: - Ищем по ссылке - Если не находим ищем по связке ИНН, Наименование, ЭтоГруппа - Далее если не нашел, то создаем элемент. Событие "После загрузки" проверяет, есть ли в справочнике контрагент с таким кодом, и если есть, то генерируется новый код. Хотелось бы еще следующий момент. Нужно, чтобы если в базе-приемнике уже есть элемент с таким кодом (и не важено ИНН, наименование и прочее), то грузить в базу контрагента НЕ НАДО. Проводка должна быть с пустой ссылкой. Я сделал изменение в "После загрузки". Был код: стал код: Но в этом случае не только не записывает контрагента, что правильно, но и не записывает главный объект, элемент справочника "Способы отражения зарплаты в регл учете". Как быть?
#6
by AlexeyAlexeyAlexey
Нет, это не то. Мне нужно, если есть такой код в базе, чтобы он в значение затолкал пустую ссылку.
#7
by Абыр
Вообще странно, что отказ в ПослеЗагрузки у контрагента вызывает отказ и для способа отражения. А так можно попробовать поэкспериментировать с параметрами в ПослеЗагрузки: Ссылка - установить пустую ссылку на контрагента ОбъектНайден - установить в Истина ОбъектМодифицирован - установить в Ложь
#8
by Odavid
Перегружай все через DBF, и не возись с этими КД. Тем более - если типовые правила не подходят.
#10
by Mikhail Volkov
"После загрузки" отказ записи какого объекта: Контрагент или "Способы отражения зарплаты в регл учете"? Попробуй заменить ОбъектНайден на Не Объект.Ссылка.Пустая
#11
by gorakh
"Вы нелюбите .... значит ВЫ не умеете их готовить". КД очень упрощает жизнь при переносе данных + полная интеграция в стандартные конфигурации и механизмы платформы.
#12
by AlexeyAlexeyAlexey
"После загрузки" отказ записи какого объекта: Контрагент или "Способы отражения зарплаты в регл учете"? Текст отказа написал в правилах контрагентов, а объект не выгрузился весь элемент "Способы отражения зарплаты в регл учете".
#13
by Cyberhawk
может, в ПКО способов отражения есть проверка на заполненность контрагента и отказ в случае незаполненности?
#14
by AlexeyAlexeyAlexey
Не получилось объект записывется без кода, только наименование, чисто чтобы ссылочка была Да, как вариант, можно попробывать править не правила контрагентов, а правила способов учета, в этом варианте мне не нравится, что если контрагенты будут еще где-то, то там также придется ставить этот код.
#15
by AlexeyAlexeyAlexey
Вообщем, так: Не помогает ни Отказ = Истина ни ОбъектНайден = ИСТИНА Он все равно пишет ссылку, без реквизитов, даже без кода, но с наименованием.
#16
by AlexeyAlexeyAlexey
Хотел сделать так, чтобы какая-то определнная ссылка ставилась хотя бы. Но ссылки присвоить можно только в полях поиска, а проверить на наличие такого кода можно только в обработчике "ПослеЗагрузки"
#17
by AlexeyAlexeyAlexey
Может у кого есть еще идеи? Если коротко описатьпроблему, то Нужно оставлять не заполненным значение реквизита справочника в случаях, когда такой код в справочнике уже есть. При этом поиск элемента ведется не по коду, а по наименовнаию и ИНН или по ссылке.
#20
by zladenuw
в кд. открой справку Обработчики "Правила конвертации объектов" При загрузке и убери по ссылке(там же не ссылка,а по внутреннему индетификатору). у меня так дубли шли хоть инн и наименование были одинаковые
#21
by be-may
"Хотелось бы еще следующий момент. Нужно, чтобы если в базе-приемнике уже есть элемент с таким кодом (и не важно ИНН, наименование и прочее), то грузить в базу контрагента НЕ НАДО. " а что если .... ПКО "Способы отражения в реглментированном учете" ПКС Контрагент. Ставишь галочку "получить из входящих данных" , правило конвертации указываешь "твоеправилоДляКонтрагентов". (или можешь создать новое с поиском, как у тебя в ). В алгоритме "перед выгрузкой" ЭТОГО(!) ПКС примерно такой код Если ВходящиеДанные = Неопределено Тогда --- т.е. ты уже на этапе выгрузки регистра не выгружаешь контрагента, если он не найден в источнике.
#22
by Жан Пердежон
Попробуй поиск объекта выполнить в обработчике "Поля поиска" и в нужном месте добавить:
#23
by Жан Пердежон
ошибка в том, на этапе выгрузки не известно, будет ли найден этот объект в приемнике или нет.
#24
by be-may
так ведь это же самое можно сказать и про любой другой выгружаемый объект (справочник, документ,..) : "на этапе выгрузки неизвестно, будет ли найден этот объект в приемнике или нет."
#25
by AlexeyAlexeyAlexey
т.е. ты уже на этапе выгрузки регистра не выгружаешь контрагента, если он не найден в источнике. Мне надо искать в приемнике, а не в источнике
#26
by AlexeyAlexeyAlexey
ПараметрыОбъекта - либо Неопределено либо Соответствие, в котором хранятся дополнительные параметры, переданные для данного объекта из источника в приемник. Если параметров передано не было, то ПараметрыОбъекта = Неопределено. В данном обработчике соответствие содержит только те параметры, для которых УСТАНОВЛЕН ПРИЗНАК ПОИСКА. а у меня он не стоит, и не надо.
#27
by be-may
"т.е. ты уже на этапе выгрузки регистра не выгружаешь контрагента, если он не найден в источнике. " вот эту фразу я неправильно написала. ее не нужно читать.. зарапортовалась, сорри. :( попробуй просто.
#30
by AlexeyAlexeyAlexey
Я не могу на этапе выгрузки проверку сделать (если только COM соединение к приемнику не сделать :))), мысль, но ведь и правда можно сделать ). Если ничего не поможет, я сделаю COM соединение.
#31
by AlexeyAlexeyAlexey
В поле поиска у меня ИНН и Наименование. И так и должно быть, так как основное условие такое, ищем по ссылке, если не находим, то ищем по ИНН и наименованию, если не находим, то создаем. Но при этом создавать с кодом, который уже есть - НЕЛЬЗЯ, пусть будет пустое значение.
#32
by AlexeyAlexeyAlexey
Да. Проблема в том, что во время "Поля поиска" еще не загружены данные для загрузки, и и для проверки элемента доступны только те элементы, которые отмечены галочками "Поиск". Мой реквизит "Код" не отмечен, следовательно в обработчике "поля поиска" я не могу посмотреть значение.
#33
by AlexeyAlexeyAlexey
Итак: воообщем, я витоге решил задачу. Для тех, кто наткнется, пишу свое решение. Описание проблемы еще раз: Есть в ЗУП проводка, ее кидают в БП. При этом ссылки, которые в ней также переносятся. Среди ссылок есть ссылка на контрагента. По правилу, контрагента надо искать по ссылке, если не нашли по связке наименование и ИНН. При этом бухгалтеры выдвинули новое условие: не должен переносится контрагент, если в справочнике уже есть контрагент с таким кодом. Проблема была в том, что перед выгрузкой проверять не с чем (база применик недоступна). А в момент загрузки, если сделать Отказ = Истина, не переносится ВСЯ проводка (а должна быть просто пустая ссылка), если сбросить ссылку на загружаемый элемент, то загрузка все равно создает ссылку с наименованием, пусть и без кода и прочих реквизитов. Решение: 1. Сделал еще одно правило по справочнику Контрагенты, которое является точной копией первого правила за исключением того, что в обработчике ПослеЗагрузки указать, что если такой код в приемнике уже есть, то отказ = истина. 2. В первом правиле указал, что если элемент не найден, то элемент не создается. 3. Добавил специальную выгрузку справочника Контрагенты и поместил ее в самый верх очереди. При этом правило как раз новое, а старое правило без создания элементов будет использоваться во всех остальных случаях. Выгрузка справочника выполняется проивзодльным алгоритмом, то есть делаем запрос, в котором собираем всех контрагентов, которые используются в интересующих нас объектах и выгружаем их. 4. Для элементов, имеющих несколько типов (например Субконто, как в нашем случае), нужно в обработчике При выгрузке сделать код, типа если значение ссылка контрагент, то имя правила такое то. Иначе он будет использовать любое. Все. Как итог мы получаем следующее: сначала загружаются элементы справочника. Если такие коды есть, то элемент не грузится. Потом грузим проводки, у проводок такое правило контрагентов используется, которое не создает, если не находит элементы. Как итог, задача решена.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Конвертация справочников из 77 в УПП 80? Конфа конвертация данных 2.0. КАК7
- "Справочник ссылка: Контрагенты". Как получить Справочник.Контрагенты?
- Конвертация данных - конвертация реквизитов дока.
- Конвертация Значений. (Конвертация данных 2.0)
- v7: Конвертация периодических реквизитов из 7.7 в 7.7 (конвертация данных 2.0)
- Конвертация данных. Конвертация в составной тип
- Конвертация данных 2, V8.1, конвертация периодических реквизитов
- Конвертация данных. Конвертация видов субконто.
- Конвертация данных. Конвертация двух реквизитов в один.
- Конвертация Данных. конвертация одного реквизита в другой
- Конвертация данных 2.1 Поля поиска? Контрагенты
В этой группе 1С
- После грозы не включается компьютер
- Возможно ли вывести список всех пользователей баз данных вместе с их паролями?
- Как отредактировать результат выполнения корректировки стоимости номенклатуры?
- Как организовать сеть из 500 компов
- Табличный документ Сумма как в экселе
- Компоновщик настроек компоновки данных в упр формах
- Анализ регистра свободные остатки показывает огромный список расхождений :(((
- v8: Вывести текущую дату в УниверсальныйОтчет
- Вход в программу временно невозможен... Как победить?
- Ошибка обработки расшифровки отчета в web клиенте
- Фоновая картинка в табличном документе
- Отчет Унифицированная форма Т-13 в УПП формируется очень долго
- Строки как ресурс в СКД
- Количество символов в строке в запросе
- локальный ключ и терминал
- отменить модифицированность формы документа, как?
- Как передать значение параметра decimal из 1с в mysql через ADO?
- v7: Метод ОткрытьПодбор() как задать отбор
- СКД. Как написать выражение ресурса в иерархии(ВычислитьВыражение или Вычислить)
- Как принудительно запускать конкретного пользователя, имя которого с пробелами