Ошибка при обмене через ПКО
Добрый день.
Мне необходимо из системы 1С:Бухгалтерия организовать фиксацию прихода запчастей на склады подразделений в системе 1С по учету оборудования (собственной разработки). Я решила получать данные из регистра бухгалтерии «Хозрасчетный».
Имеется справочник «Номенклатура» и документ «Поступление запасных частей» в 1С:УчетОборудования, туда должны переносится данные из бухгалтерии.
Создаю ПКО:
прикреп.файл 1
Создаю ПВД:
прикреп.файлы 2,3
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
|ХозрасчетныйДвиженияССубконто.Регистратор КАК Документ,
|ХозрасчетныйДвиженияССубконто.Регистратор.Номер КАК Номер,
|ХозрасчетныйДвиженияССубконто.СубконтоКт1.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
|ХозрасчетныйДвиженияССубконто.Сумма КАК СуммаНалогУчет,
|ХозрасчетныйДвиженияССубконто.Сумма / ХозрасчетныйДвиженияССубконто.КоличествоКт КАК Цена,
|ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК Номенклатура,
|ХозрасчетныйДвиженияССубконто.КоличествоКт КАК Количество,
|ХозрасчетныйДвиженияССубконто.ПодразделениеДт.Код КАК Подразделение
|ИЗ
|РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДН, &ДК, СчетДт.Код В (""25""), , ) КАК ХозрасчетныйДвиженияССубконто
|ГДЕ
|ХозрасчетныйДвиженияССубконто.СубконтоДт1.Код = &СтатьяЗатрат
| И ХозрасчетныйДвиженияССубконто.ПодразделениеДт.Код = &КодПодр
| И ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор)=ТИП(Документ.ТребованиеНакладная)";
Запрос.УстановитьПараметр("ДК",КонецДня(Дата(2019,01,01)));
Запрос.УстановитьПараметр("ДН",НачалоДня(Дата(2018,01,01)));
Запрос.УстановитьПараметр("СтатьяЗатрат", “02.02.11”);
Запрос.УстановитьПараметр("КодПодр", “003050”);
РезультатЗапроса=Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
Выгрузка = РезультатЗапроса.Выгрузить();
ВходящиеДанные = Новый Структура("Материалы");
ВходящиеДанные.Материалы=Новый ТаблицаЗначений;
ВходящиеДанные.Материалы.Колонки.Добавить("ЕдиницаИзмерения");
ВходящиеДанные.Материалы.Колонки.Добавить("СуммаНалогУчет");
ВходящиеДанные.Материалы.Колонки.Добавить("Количество");
ВходящиеДанные.Материалы.Колонки.Добавить("Номенклатура");
ВходящиеДанные.Материалы.Колонки.Добавить("Цена");
ВходящиеДанные.Материалы.Колонки.Добавить("Заказ");
ВходящиеДанные.Материалы.Колонки.Добавить("Документ");
ВходящиеДанные.Материалы.Колонки.Добавить("Подразделение");
Для каждого ТекСтрока Из Выгрузка Цикл
НовСтрока = ВходящиеДанные.Материалы.Добавить();
НовСтрока.ЕдиницаИзмерения = ТекСтрока.ЕдиницаИзмерения;
НовСтрока.СуммаНалогУчет = ТекСтрока.СуммаНалогУчет;
НовСтрока.Количество = ТекСтрока.Количество;
НовСтрока.Номенклатура = ТекСтрока.Номенклатура;
НовСтрока.Цена = ТекСтрока.Цена;
НовСтрока.Заказ=”02.02.11”;
НовСтрока.Документ=Строка(ТекСтрока.Документ);
НовСтрока.Подразделение=ТекСтрока.Подразделение;
КонецЦикла;
ВыгрузитьПоПравилу(,,ВходящиеДанные,,"ПоступлениеЗапасныхЧастей");
КонецЕсли;
Если выгружать без узла обмена, то ошибок не выдаёт, нормально все выгружает.
прикреп.файл 4.
Если выбираешь узел:
План обмена в бухгалтерии «Полный», «Периферийная база».
Выдает ошибку:
прикреп.файл 5.
Помогите, пожалуйста, разобраться.
Мне необходимо из системы 1С:Бухгалтерия организовать фиксацию прихода запчастей на склады подразделений в системе 1С по учету оборудования (собственной разработки). Я решила получать данные из регистра бухгалтерии «Хозрасчетный».
Имеется справочник «Номенклатура» и документ «Поступление запасных частей» в 1С:УчетОборудования, туда должны переносится данные из бухгалтерии.
Создаю ПКО:
прикреп.файл 1
Создаю ПВД:
прикреп.файлы 2,3
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
|ХозрасчетныйДвиженияССубконто.Регистратор КАК Документ,
|ХозрасчетныйДвиженияССубконто.Регистратор.Номер КАК Номер,
|ХозрасчетныйДвиженияССубконто.СубконтоКт1.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
|ХозрасчетныйДвиженияССубконто.Сумма КАК СуммаНалогУчет,
|ХозрасчетныйДвиженияССубконто.Сумма / ХозрасчетныйДвиженияССубконто.КоличествоКт КАК Цена,
|ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК Номенклатура,
|ХозрасчетныйДвиженияССубконто.КоличествоКт КАК Количество,
|ХозрасчетныйДвиженияССубконто.ПодразделениеДт.Код КАК Подразделение
|ИЗ
|РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДН, &ДК, СчетДт.Код В (""25""), , ) КАК ХозрасчетныйДвиженияССубконто
|ГДЕ
|ХозрасчетныйДвиженияССубконто.СубконтоДт1.Код = &СтатьяЗатрат
| И ХозрасчетныйДвиженияССубконто.ПодразделениеДт.Код = &КодПодр
| И ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор)=ТИП(Документ.ТребованиеНакладная)";
Запрос.УстановитьПараметр("ДК",КонецДня(Дата(2019,01,01)));
Запрос.УстановитьПараметр("ДН",НачалоДня(Дата(2018,01,01)));
Запрос.УстановитьПараметр("СтатьяЗатрат", “02.02.11”);
Запрос.УстановитьПараметр("КодПодр", “003050”);
РезультатЗапроса=Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
Выгрузка = РезультатЗапроса.Выгрузить();
ВходящиеДанные = Новый Структура("Материалы");
ВходящиеДанные.Материалы=Новый ТаблицаЗначений;
ВходящиеДанные.Материалы.Колонки.Добавить("ЕдиницаИзмерения");
ВходящиеДанные.Материалы.Колонки.Добавить("СуммаНалогУчет");
ВходящиеДанные.Материалы.Колонки.Добавить("Количество");
ВходящиеДанные.Материалы.Колонки.Добавить("Номенклатура");
ВходящиеДанные.Материалы.Колонки.Добавить("Цена");
ВходящиеДанные.Материалы.Колонки.Добавить("Заказ");
ВходящиеДанные.Материалы.Колонки.Добавить("Документ");
ВходящиеДанные.Материалы.Колонки.Добавить("Подразделение");
Для каждого ТекСтрока Из Выгрузка Цикл
НовСтрока = ВходящиеДанные.Материалы.Добавить();
НовСтрока.ЕдиницаИзмерения = ТекСтрока.ЕдиницаИзмерения;
НовСтрока.СуммаНалогУчет = ТекСтрока.СуммаНалогУчет;
НовСтрока.Количество = ТекСтрока.Количество;
НовСтрока.Номенклатура = ТекСтрока.Номенклатура;
НовСтрока.Цена = ТекСтрока.Цена;
НовСтрока.Заказ=”02.02.11”;
НовСтрока.Документ=Строка(ТекСтрока.Документ);
НовСтрока.Подразделение=ТекСтрока.Подразделение;
КонецЦикла;
ВыгрузитьПоПравилу(,,ВходящиеДанные,,"ПоступлениеЗапасныхЧастей");
КонецЕсли;
Если выгружать без узла обмена, то ошибок не выдаёт, нормально все выгружает.
прикреп.файл 4.
Если выбираешь узел:
План обмена в бухгалтерии «Полный», «Периферийная база».
Выдает ошибку:
прикреп.файл 5.
Помогите, пожалуйста, разобраться.
Прикрепленные файлы:
По теме из базы знаний
- Обмен через универсальный формат. Пример нестандартной конвертации данных
- [ED] Обмен для предыдущих версий - УТ 11.0, УТ 11.1, УТ 11.2, УТ 11.3, УТ 11.4, УТ 11.5 с EnterpriseData (универсальный формат обмена), правила обмена
- [ED] Обмен для предыдущих версий - ERP 2.2, ERP 2.4, ERP 2.5 с EnterpriseData (универсальный формат обмена), правила обмена
- [ED] Обмен для предыдущих версий - УНФ 1.6, УНФ 3.0 с EnterpriseData (универсальный формат обмена), правила обмена
- [ED] Обмен для предыдущих версий - Розница 2.3 с EnterpriseData (универсальный формат обмена), правила обмена
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Помещайте это в Запросы
Получится
ВЫБРАТЬ
ДатаВремя(2011,2,2) КАК Заказ
ХозрасчетныйДвиженияССубконто.Регистратор КАК Документ,
ХозрасчетныйДвиженияССубконто.Регистратор.Номер КАК Номер,
ХозрасчетныйДвиженияССубконто.СубконтоКт1.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
ХозрасчетныйДвиженияССубконто.Сумма КАК СуммаНалогУчет,
ХозрасчетныйДвиженияССубконто.Сумма / ХозрасчетныйДвиженияССубконто.КоличествоКт КАК Цена,
ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК Номенклатура,
ХозрасчетныйДвиженияССубконто.КоличествоКт КАК Количество,
ХозрасчетныйДвиженияССубконто.ПодразделениеДт.Код КАК Подразделение
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДН, &ДК, СчетДт.Код В (""25""), , ) КАК ХозрасчетныйДвиженияССубконто
ГДЕ
ХозрасчетныйДвиженияССубконто.СубконтоДт1.Код = &СтатьяЗатрат
И ХозрасчетныйДвиженияССубконто.ПодразделениеДт.Код = &КодПодр
И ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор)=ТИП(Документ.ТребованиеНакладная)"
ПоказатьПолучится
Запрос =Запросы.<Имя запроса>;
Запрос.УстановитьПараметр("ДК",КонецДня(Дата(2019,01,01)));
Запрос.УстановитьПараметр("ДН",НачалоДня(Дата(2018,01,01)));
Запрос.УстановитьПараметр("СтатьяЗатрат", “02.02.11”);
Запрос.УстановитьПараметр("КодПодр", “003050”);
КоллекцияОбъектов = Запрос.Выполнить().Выгрузить();
(5)
Это не важно, главное запросом собрать КоллекцияОбъектов, что проще и прозрачнее, чем ВходящиеДанные
И это .
У Вас
ИЗ
Вы используете только Вид субконто Номенклатура., Отсекайте нафиг лишние записи в запросе
Поле заказ - это строка, а не дата, это я просто жёстко задала значение "02.02.11".
Это не важно, главное запросом собрать КоллекцияОбъектов, что проще и прозрачнее, чем ВходящиеДанные
И это .
У Вас
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДН, &ДК, СчетДт.Код В (""25""), , ) КАК ХозрасчетныйДвиженияССубконто
Вы используете только Вид субконто Номенклатура., Отсекайте нафиг лишние записи в запросе
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДН, &ДК, СчетДт.Код В (""25""),Значение(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура) , ) КАК ХозрасчетныйДвиженияССубконто
А обмен тестируйте не Универсальным обменном. Тот передает ссылку и Запись,А Обработка КонвертацияОбъектовИнформационныхБаз Набор и Объект
Этим тестируйте
Этим тестируйте
Прикрепленные файлы:
ВыгрузкаЗагрузкаПоПлануОбменаОФ.epf
ВыгрузкаПоПравиламУзла.epf
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот