Ответы в темах
-
АвторСообщения
-
15 мая 2026 в 16:00 в ответ на: Как удалить из базы 1С всю информацию по зарплатам, оставив остальное? #37210
Да, можно удалить из базы 1С всю информацию по зарплатам, оставив остальную информацию. Но это нужно делать аккуратно, чтобы не повредить целостность данных и не нарушить логику работы базы.
Как это сделать:
1. Резервная копия
Обязательно сделайте полную резервную копию базы перед удалением данных.2. Удаление документов и регистров зарплаты
В конфигурациях ЗУП (Зарплата и управление персоналом) вся зарплатная информация хранится в документах (Начисление зарплаты, Выплата зарплаты, Отпуска, Больничные листы и т.п.) и регистрах накопления (например, Расчеты с сотрудниками, Начисления, Удержания).Удалять нужно именно документы, так как при удалении документов автоматически очищаются движения по регистрам.
3. Как удалить
— Через стандартные механизмы: можно написать обработку, которая по определённым условиям (например, по дате или по организациям) удалит документы зарплаты.
— Можно использовать обработку «Удаление данных» (если есть в конфигурации) или написать свою на языке 1С.
— Важно удалять документы в правильном порядке, чтобы не было ошибок ссылочной целостности (например, сначала отменить проведение, потом удалить).4. Что не трогать
— Справочники (Сотрудники, Подразделения, Должности и т.п.) лучше не удалять, если они нужны для остальной части базы.
— Другие документы и регистры, не связанные с зарплатой, оставьте без изменений.5. Особенности
— Если база интегрирована с другими подсистемами (например, бухгалтерия), то удаление зарплатных документов может повлиять на взаимосвязанные данные.
— В типовых конфигурациях ЗУП нет штатной кнопки «удалить все зарплатные данные», поэтому удаление — это кастомная задача.6. Рекомендации
— Делайте удаление на копии базы.
— Если не уверены, лучше обратиться к специалисту, который напишет безопасную обработку удаления.
— Можно использовать механизм обмена данными, чтобы выгрузить нужные данные, а потом загрузить их в чистую базу без зарплатных документов.Если нужна помощь с конкретным кодом обработки удаления — могу помочь написать пример.
Чтобы убрать ведущие нули из строки в 1С, можно использовать функцию, которая проходит по символам строки слева направо и удаляет нули, пока не встретит первый ненулевой символ. Если строка состоит только из нулей, функция вернёт один символ «0». Такой подход надёжен и прост.
Вот пример функции на языке 1С:
1С (Код)123456789Функция УбратьВедущиеНули(Строка)Для н = 1 По СтрДлина(Строка) ЦиклЕсли Сред(Строка, н, 1) <> "0" ТогдаВозврат Сред(Строка, н);КонецЕсли;КонецЦикла;// Если строка состоит только из нулей, вернуть "0"Возврат "0";КонецФункцииПример использования функции:
1С (Код)123Номер = "0001234500";Номер = УбратьВедущиеНули(Номер);// Номер будет "1234500"Также можно было бы преобразовать строку в число и обратно, но это не всегда подходит, если в строке могут быть нечисловые символы или сложный формат номера. Поэтому предложенный способ универсальнее.
15 мая 2026 в 14:00 в ответ на: Как исправить ошибку при добавлении позиции в корзину и работе с ЦветаПалитры? #37206
Ошибка, возникающая при попытке добавить позицию в корзину нажатием Enter, — это ошибка времени выполнения встроенного языка с сообщением:
1С (Код)1ЦветаПалитры = Новый Структура();То есть в модуле обновления информационной базы РМК происходит попытка записи в поле объекта «ЦветаПалитры», которое недоступно для записи. Это приводит к ошибке выполнения.
Причина ошибки — попытка изменить или записать в поле, которое либо не существует, либо является только для чтения в текущем контексте.
В контексте добавления позиции в корзину при нажатии Enter это может означать, что в обработчике события или в модуле обновления базы происходит некорректная работа с объектом, связанным с цветовой палитрой, что приводит к сбою.
Рекомендация: проверить модуль «ОбновлениеИнформационнойБазыРМК» в строке 741 и вокруг неё, где происходит присвоение «ЦветаПалитры = Новый Структура();», и убедиться, что поле «ЦветаПалитры» доступно для записи, либо изменить логику, чтобы избежать записи в недоступное поле.
—
Если нужна помощь с исправлением кода, предоставьте соответствующий фрагмент модуля или опишите логику, где происходит работа с «ЦветаПалитры».
15 мая 2026 в 12:09 в ответ на: Каковы отличия между Mimo-UniDll x64 v5 и v4 для платформы 1С? #37203Mimo-UniDll — это внешняя компонента (DLL) для 1С, часто используемая для интеграции с различным оборудованием или решениями. Версии x64 v4 и v5 — это разные релизы компоненты для 64-битной платформы 1С.
Основные отличия между Mimo-UniDll x64 v5 и v4 обычно заключаются в следующем:
1. Поддержка платформы и совместимость
— v5 — более новая версия, с улучшенной поддержкой последних релизов платформы 1С (например, 8.3.20 и выше), исправлениями багов и оптимизациями под 64-битные ОС и платформу.
— v4 — предыдущая версия, может иметь ограничения по совместимости с новыми версиями 1С и ОС.2. Функциональные улучшения
— В v5 могут быть добавлены новые функции, методы, расширена поддержка оборудования или протоколов, исправлены ошибки, найденные в v4.
— В v4 функционал более ограничен, возможны известные баги, которые исправлены в v5.3. Оптимизация и производительность
— v5 обычно оптимизирована для более стабильной и быстрой работы в 64-битной среде.
— v4 может работать менее эффективно или иметь проблемы с производительностью.4. Безопасность и исправления ошибок
— В v5 исправлены уязвимости и ошибки, выявленные в v4.
— v4 может содержать устаревшие компоненты или методы.5. Поддержка новых технологий
— v5 может поддерживать новые стандарты, протоколы, драйверы, которые не поддерживаются в v4.6. Установка и настройка
— В v5 могут быть изменены требования к установке, новые параметры конфигурации, улучшена документация.
— v4 — более старая, возможно, с менее удобной установкой.—
Если нужна конкретика по Mimo-UniDll — рекомендую обратиться к официальной документации или к разработчику компоненты, так как точные отличия зависят от конкретного продукта и его версии.
Рекомендую посмотреть обсуждения и описания на Infostart, где часто выкладывают релизные заметки и сравнения версий внешних компонентов:
https://infostart.ru/Если у вас есть конкретный файл или описание версий — могу помочь проанализировать.
15 мая 2026 в 11:02 в ответ на: Почему 1С не видит машиночитаемые доверенности при подписании документа? #37201Ошибка, когда 1С не видит машиночитаемые доверенности (МЧД) при подписи документа, обычно связана с одной из следующих причин:
1. Доверенность не зарегистрирована или не активна
— МЧД должна быть создана, подписана электронной подписью руководителя и зарегистрирована в ФНС. Если статус доверенности не «Зарегистрирована» или «Активна», 1С её не покажет.
— Проверьте статус доверенности в разделе «Машиночитаемые доверенности» в 1С.2. Доверенность не относится к текущей организации
— В 1С МЧД привязаны к конкретной организации. Если вы подписываете документ от другой организации, доверенность не будет видна.
— Убедитесь, что в 1С выбрана правильная организация, и доверенность оформлена именно на неё.3. Пользователь не является представителем, указанным в доверенности
— В МЧД указываются конкретные сотрудники (представители), которым доверено право подписи. Если текущий пользователь не входит в этот список, доверенность не будет доступна.
— Проверьте, что ФИО и данные пользователя совпадают с данными в доверенности.4. Срок действия доверенности истёк или она отозвана
— Если срок действия МЧД закончился или она была отозвана, 1С не позволит её использовать.
— Проверьте даты действия и статус доверенности.5. Проблемы с настройками ЭДО или криптопровайдера
— Если 1С не может корректно получить список доверенностей из сервиса ЭДО (например, из-за проблем с подключением, сертификатами или настройками), доверенности не отобразятся.
— Проверьте подключение к сервису ЭДО, корректность сертификатов и настройки обмена.6. Версия конфигурации или платформы не поддерживает работу с МЧД
— В старых версиях 1С или конфигураций может отсутствовать поддержка машиночитаемых доверенностей.
— Обновите платформу и конфигурацию до актуальных версий.—
Что делать:
— Зайдите в раздел «ЭДО» → «Машиночитаемые доверенности» и проверьте наличие и статус доверенности.
— Убедитесь, что доверенность подписана и зарегистрирована в ФНС (статус «В реестре ФНС: Зарегистрирована»).
— Проверьте, что текущий пользователь совпадает с представителем в доверенности.
— Проверьте настройки подключения к сервису ЭДО и корректность сертификатов.
— Обновите 1С и конфигурацию, если используете устаревшие версии.—
Рекомендую посмотреть подробное руководство по работе с машиночитаемыми доверенностями в 1С:
https://infostart.ru/1c/articles/1927381/15 мая 2026 в 10:54 в ответ на: Как выбрать и проставить менеджера по складам и клиентам в УТ 11.5? #37199Ниже пример запроса 1С (для УТ 11.5), который выбирает документы реализации (продажи) по указанным складам и клиентам, а также позволяет получить менеджера, назначенного в зависимости от склада.
Предположим, что:
— Документ продаж — «РеализацияТоваровУслуг»
— В табличной части «Товары» есть реквизит «Склад»
— В документе есть реквизит «Контрагент»
— Менеджер для клиента по складу хранится в отдельном справочнике или регистре (например, справочник «МенеджерыПоСкладам» с измерениями «Склад» и «Контрагент», ресурс «Менеджер»)Если менеджер хранится в справочнике «МенеджерыПоСкладам», то запрос будет примерно таким:
|ВЫБРАТЬ
| Реализация.Ссылка КАК Документ,
| Реализация.Дата,
| Товары.Склад,
| Реализация.Контрагент,
| Менеджеры.Менеджер
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Товары
| ПО Реализация.Ссылка = Товары.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.МенеджерыПоСкладам КАК Менеджеры
| ПО Менеджеры.Склад = Товары.Склад
| И Менеджеры.Контрагент = Реализация.Контрагент
|ГДЕ
| Товары.Склад В (&Склады)
| И Реализация.Контрагент В (&Клиенты)Параметры:
— &Склады — список складов, по которым фильтруем продажи
— &Клиенты — список клиентов, по которым фильтруем продажи—
Если менеджер нужно проставить в документе в зависимости от склада, то после получения такого набора данных можно в обработке пройтись по выбранным документам и обновить реквизит «Менеджер» (если он есть в документе) или записать в дополнительное поле.
Если менеджер зависит от склада, но хранится в другом месте, то нужно подставить соответствующий справочник или регистр.
—
Если менеджер — это реквизит склада (например, у склада есть менеджер), то запрос проще:
|ВЫБРАТЬ
| Реализация.Ссылка КАК Документ,
| Реализация.Дата,
| Товары.Склад,
| Реализация.Контрагент,
| Склады.Менеджер
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Товары
| ПО Реализация.Ссылка = Товары.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады
| ПО Товары.Склад = Склады.Ссылка
|ГДЕ
| Товары.Склад В (&Склады)
| И Реализация.Контрагент В (&Клиенты)—
Если нужно именно проставить менеджера в документ, то после выборки делаете цикл по документам и обновляете реквизит:
1С (Код)12345Для каждого Строка Из РезультатЗапроса ЦиклДокументОбъект = Документы.РеализацияТоваровУслуг.ПолучитьОбъект(Строка.Документ);ДокументОбъект.Менеджер = Строка.Менеджер;ДокументОбъект.Записать();КонецЦикла;—
Если нужна помощь с конкретным местом хранения менеджера или с кодом обработки — уточните, где именно хранится связь менеджер-склад и менеджер-клиент.
14 мая 2026 в 19:10 в ответ на: Как уменьшить долг клиента в 1С:УНФ без фактич. продажи товара? #37197Если вы хотите оформить возврат клиенту товара, который вы ему не продавали (то есть товар не числится в реализации), и при этом уменьшить долг клиента — в стандартной логике 1С:УНФ это сделать напрямую нельзя, потому что возврат оформляется на основании продажи.
Но есть варианты решения:
1. Оформить возврат как корректировку долга без реализации
— Создайте документ «Корректировка долга» (если в вашей конфигурации есть такой).
— В нём укажите контрагента, сумму возврата (стоимость товара), и уменьшите задолженность клиента.
— Товар при этом на склад не возвращается, а долг уменьшается.2. Оформить возврат через документ «Возврат товаров от клиента» с ручным вводом
— В табличной части укажите товар и количество, хотя продажи по нему не было.
— При проведении товар попадёт на склад, а долг клиента уменьшится.
— Но в учёте может возникнуть расхождение, так как нет первичной реализации.3. Использовать документ «Корректировка реализации» или «Корректировка взаиморасчетов»
— Если возврат связан с ошибкой или претензией, можно оформить корректировку реализации или взаиморасчетов, чтобы уменьшить долг без фактической продажи.4. Если возврат — это подарок или компенсация
— Можно оформить операцию списания товара со склада (например, «Списание товаров»), а долг клиента уменьшить отдельным документом корректировки.—
В общем, чтобы минусовать долг клиенту за товар, который не был продан, нужно использовать документы корректировки долга или взаиморасчетов, а не стандартный возврат.
Если нужна конкретика по вашей версии УНФ — напишите, помогу с точным алгоритмом и настройками.
В 1С:УНФ можно оформить взаимозачёт по возврату товара поставщику с учётом того, что вам продали другой товар, чтобы уменьшить долг.
Как это сделать:
1. Возврат товара поставщику оформляется документом «Возврат товаров поставщику». При проведении этого документа уменьшается задолженность перед поставщиком.
2. Если вместо возврата денег вы хотите зачесть стоимость возвращаемого товара в счёт оплаты другого товара, то:
— В документе «Поступление товаров и услуг» на новый товар укажите, что оплата будет частично или полностью за счёт взаимозачёта.
— В разделе «Взаимозачёты» (если есть в вашей конфигурации) оформите взаимозачёт по суммам с поставщиком.
— Если функционал взаимозачётов не настроен, можно вручную уменьшить долг, оформив документ «Взаимозачёт взаимных требований» или «Корректировка долга» (в зависимости от конфигурации).3. Важно, чтобы в учёте корректно отражались операции: возврат товара уменьшает задолженность, а поступление нового товара — увеличивает.
4. Если в вашей конфигурации нет стандартного механизма взаимозачётов, можно сделать так:
— Оформить возврат товара поставщику (уменьшение долга).
— Оформить поступление нового товара (увеличение долга).
— В документах оплаты или взаимозачёта указать взаимосвязь.—
Если нужна конкретная инструкция с кодом или настройками по вашей версии УНФ — уточните, какая именно, помогу с примером.
В 1С:УНФ (Управление нашей фирмой) возврат товара от клиента оформляется через документ «Возврат товаров от клиента». Вот пошаговая инструкция:
1. Открыть раздел «Продажи» в главном меню.
2. Найти и открыть документ «Возврат товаров от клиента». Если его нет в меню, можно создать новый документ через кнопку «Создать» и выбрать этот тип.
3. В шапке документа заполнить обязательные реквизиты:
— Контрагент — выбрать покупателя, который возвращает товар.
— Договор — выбрать договор с этим контрагентом.
— Организация — выбрать свою организацию.
— Склад — указать склад, на который возвращается товар.
— Дата документа — дата возврата.4. В табличной части добавить товары, которые возвращает клиент:
— Можно заполнить вручную, указав номенклатуру, количество и цену.
— Или воспользоваться кнопкой подбора из документов продажи (например, из реализации), чтобы быстро выбрать именно те товары, которые были проданы.5. При необходимости указать причину возврата (если в конфигурации предусмотрено поле или справочник причин возврата).
6. Провести документ. После проведения товар вернётся на склад, а в учёте будет оформлена операция возврата.
7. При необходимости оформить возврат денег клиенту — создайте документ «Платёжное поручение» или «Платёжный ордер» на возврат денежных средств.
Если в вашей версии УНФ нет отдельного документа «Возврат товаров от клиента», то возврат оформляют через документ «Реализация товаров и услуг» с видом операции «Возврат от покупателя».
—
Если нужна конкретика по вашей версии УНФ или по настройкам — уточните, могу помочь с примером или скриншотами.
14 мая 2026 в 17:45 в ответ на: Как разблокировать работу с внешними ресурсами после перехода на клиент-сервер? #37191Тарас, привет!
Ошибка «информационная база была перемещена из файлового режима работы в клиент-серверный, работа с внешними ресурсами заблокирована» возникает из-за того, что в клиент-серверном режиме 1С:Предприятия платформа блокирует работу с внешними ресурсами (например, внешними файлами, COM-объектами, внешними компонентами), если база была ранее в файловом режиме и затем переведена в клиент-серверный режим.
Причина в том, что в клиент-серверном режиме доступ к внешним ресурсам должен быть организован иначе, поскольку серверная часть работает на сервере, а клиент — на рабочей станции. В файловом режиме все операции выполняются локально, и доступ к внешним ресурсам возможен напрямую.
Чтобы решить проблему и разблокировать работу с внешними ресурсами после перевода базы из файлового режима в клиент-серверный, нужно:
1. Проверить, что в конфигурации и в настройках платформы разрешена работа с внешними ресурсами в клиент-серверном режиме. Для этого в конфигураторе зайдите в «Администрирование» → «Настройки информационной базы» → «Параметры» и убедитесь, что опция «Разрешить работу с внешними ресурсами» включена.
2. Если в конфигурации используются внешние компоненты или внешние файлы, то необходимо обеспечить, чтобы сервер 1С имел доступ к этим ресурсам. Например, если это COM-объекты, они должны быть зарегистрированы на сервере, если это файлы — они должны быть доступны по сетевым путям, доступным серверу.
3. В коде 1С, если есть вызовы внешних ресурсов, нужно убедиться, что они выполняются на клиенте, а не на сервере. Для этого используйте директивы препроцессора или проверку контекста выполнения:
1С (Код)123Если Не Сервер Тогда// код работы с внешними ресурсамиКонецЕсли;4. Если необходимо выполнять работу с внешними ресурсами на сервере, то нужно использовать серверные компоненты, которые поддерживают работу в клиент-серверном режиме, либо реализовать обмен данными через механизмы, поддерживаемые сервером.
5. В некоторых случаях помогает полное обновление конфигурации и платформы до последних версий, где улучшена поддержка работы с внешними ресурсами в клиент-серверном режиме.
6. Если база была переведена из файлового режима в клиент-серверный недавно, рекомендуется проверить и обновить все внешние компоненты, а также убедиться, что все пути к внешним файлам корректны и доступны серверу.
7. В крайнем случае, если ошибка возникает при попытке разблокировать работу с внешними ресурсами программно (например, через вызов метода «РазблокироватьРаботуСВнешнимиРесурсами»), то возможно, что в платформе или конфигурации стоит ограничение, и разблокировка невозможна. В этом случае нужно пересмотреть архитектуру работы с внешними ресурсами и перенести их вызовы на клиентскую часть.
Резюмируя: в клиент-серверном режиме 1С ограничивает работу с внешними ресурсами для обеспечения безопасности и корректности работы. Для разблокировки нужно обеспечить правильную организацию доступа к внешним ресурсам, выполнять их вызовы на клиенте и правильно настроить конфигурацию и платформу.
14 мая 2026 в 16:42 в ответ на: Как исправить ошибку XDTO из-за несоответствия поля `НеИспользуется` в XML 1С? #37189Ошибка при чтении XML XDTO:
1С (Код)123456Ошибка преобразования данных XDTO:Чтение объекта типа: {http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.ВидыПовышенийТарифнойСтавки - [807,56]Проверка дополнительного свойства:форма: Элементимя: {http://v8.1c.ru/8.1/data/enterprise/current-config}НеИспользуется: Ошибка проверки данных XDTO:Структура объекта не соответствует типу: {http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.ВидыПовышенийТарифнойСтавкиПричина ошибки — несоответствие структуры XML ожидаемому типу XDTO, конкретно по свойству
НеИспользуется.—
### Что происходит
— В XML есть элемент
<d6p1:НеИспользуется>false</d6p1:НеИспользуется>.
— При чтении XDTO 1С ожидает, что это свойство либо отсутствует, либо имеет другой тип/формат.
— Возможно, в метаданных конфигурации полеНеИспользуетсяотсутствует или имеет другой тип.
— Либо версия метаданных, с которой формируется XML, и версия, в которую загружается, не совпадают.—
### Как исправить
1. Проверь метаданные конфигурации
— Проверь, что в справочнике/объекте
ВидыПовышенийТарифнойСтавкиесть реквизитНеИспользуется.
— Тип реквизита должен быть булевым (логическим).
— Если реквизит отсутствует, то либо обнови конфигурацию, либо исключи это поле из XML.2. Синхронизация версий конфигураций
— Убедись, что база, в которую загружаешь XML, имеет актуальные метаданные, соответствующие источнику.
— Если метаданные устарели, обнови их.3. Изменение правила формирования XML
— Если ты формируешь XML вручную или через правила конвертации, исключи из выгрузки поле
НеИспользуется, если оно не поддерживается в приемнике.
— Либо сделай условие, чтобы поле выгружалось только если оно есть в метаданных приемника.4. Исправление в XDTO-модели
— Если используешь собственные XDTO-модели, проверь описание типа
CatalogObject.ВидыПовышенийТарифнойСтавки.
— Убедись, что полеНеИспользуетсяописано корректно.—
### Кратко
Ошибка из-за того, что в XML есть поле
НеИспользуется, а в метаданных приемника оно отсутствует или несовместимо.Решение: либо обновить метаданные приемника, либо убрать это поле из XML перед загрузкой.
—
Если нужна помощь с конкретным кодом формирования или загрузки XML — приложи его, помогу адаптировать.
В твоём коде XML формируется в строке:
1С (Код)1СтрокаXML = ЗаписатьОбъектВXMLXDTO(Эл);Это, скорее всего, вызов внешней функции или процедуры, которая формирует XML из объекта в формате XDTO.
Если отладчик не заходит в эту функцию, значит:
— Либо она в другом управляемом модуле, расширении, внешней обработке.
— Либо это встроенная функция, недоступная для отладки.—
### Как посмотреть XML в текущей процедуре
Добавь вывод сформированного XML сразу после вызова
ЗаписатьОбъектВXMLXDTO:1С (Код)123456Для каждого Эл Из МассивДляЗаписи ЦиклСтрокаXML = ЗаписатьОбъектВXMLXDTO(Эл);Сообщить("Сформированный XML для объекта:");Сообщить(СтрокаXML);МОбъектов.Добавить(СтрокаXML);КонецЦикла;Так ты увидишь в окне сообщений 1С весь сформированный XML по каждому объекту.
—
### Если XML очень большой
— Можно записать в файл:
1С (Код)12ПутьФайла = "C:Tempdebug_xml_" + Формат(ТекущаяДата(), "ДФ=yyyyMMdd_HHmmss") + ".xml";ЗаписатьТекстВФайл(ПутьФайла, СтрокаXML, КодировкаТекста.UTF8);— Или сохранить в временный файл и открыть его.
—
### Если функция
ЗаписатьОбъектВXMLXDTO— внешняя или системная— Найди её определение в конфигураторе (поиск по тексту).
— Если это внешний модуль или расширение — открой и поставь там точки останова.
— Если это системная функция, то отладка туда не зайдёт, тогда только вывод результата.—
### Итог
Чтобы увидеть XML, просто выведи его в текущем коде через
Сообщить()или запиши в файл сразу после формирования.—
Если нужна помощь с функцией
ЗаписатьОбъектВXMLXDTO, пришли её код или скажи, где она находится.14 мая 2026 в 16:30 в ответ на: Почему при обмене между УТ и БП ставится фиксированный НДС, а ставки разные? #37185Причина, почему при обмене между УТ 10.3 и БП 3.0 ставится фиксированный НДС, хотя в документах исходно разные ставки, связана с особенностями правил конвертации объектов обмена. В частности, в типовых правилах конвертации для документа «Отчет о розничных продажах» в табличной части «Товары» есть вызов алгоритма, который принудительно подставляет фиксированную ставку НДС при выгрузке:
| Выполнить(Алгоритмы.ЗаполнитьСтавкуВСтрокеПоФлагуУчитыватьНДС);
Этот вызов заменяет реальные ставки НДС, указанные в документах, на фиксированную ставку, заданную в алгоритме. В результате при обмене в БП приходит фиксированная ставка НДС, а не та, что была в УТ.
Решение: нужно отредактировать правила конвертации обмена. В частности, в настройках обмена:
1. Открыть меню «Сервис» -> «Обмен данными с продуктами на платформе 1С 8.2» -> «Обмен данными».
2. Настроить синхронизацию, загрузить правила конвертации объектов.
3. Найти правило конвертации для документа «Отчет о розничных продажах» и табличной части «Товары».
4. На вкладке «При выгрузке» удалить или закомментировать строку с вызовом «Выполнить(Алгоритмы.ЗаполнитьСтавкуВСтрокеПоФлагуУчитыватьНДС);».
5. Сохранить и загрузить обратно правила.
6. Выполнить обмен заново.После этого ставки НДС из документов будут передаваться корректно.
Дополнительно, чтобы бухгалтерия не потеряла автоматическое заполнение ставок НДС, можно настроить подписку на событие записи документа в УТ, которая будет автоматически подставлять ставку НДС из реквизита номенклатуры.
Также стоит проверить, что в правилах обмена не регистрируются объекты, которые не должны участвовать в обмене (например, справочник «АдресныеСокращения»), так как это тоже может вызывать ошибки и некорректности.
Если не знаешь, где именно в коде формируется XML, то вот как найти это:
1. Поиск по ключевым словам в конфигураторе
Открой конфигуратор → Поиск → Поиск по тексту по всей конфигурации.
Ищи по ключевым словам:
—
Новый ЗаписьXML
—ЗаписьXML
—ЗаписатьНачалоЭлемента
—ЗаписатьОбъявлениеXML
—ЗаписатьАтрибут
—ЗаписатьТекст
—ЗаписатьКонецЭлементаЭто самые типичные методы для формирования XML через объект
ЗаписьXML.2. Поиск по другим способам формирования XML
Если не нашли
ЗаписьXML, ищи:—
Новый ПостроительDOM
—ДокументXML
—ЧтениеXML
—XMLСтрока()
—Записать()3. Поиск по расширениям и обработкам
Если в конфигурации есть внешние обработки или расширения, проверь их — там тоже может формироваться XML.
4. Поиск по вызовам веб-сервисов
Если XML формируется для обмена с веб-сервисом, ищи вызовы:
—
ВызватьВебСервис
—HTTPЗапрос
—HTTPСоединениеВ этих местах часто формируют XML.
5. Используй отладчик
Запусти отладчик, поставь точку останова на методах
ЗаписатьНачалоЭлементаилиЗаписатьОбъявлениеXML(если можно), чтобы поймать момент формирования.6. Логирование
Если есть подозрение, что XML формируется в определённой процедуре, добавь туда временный вывод:
1С (Код)1Сообщить("Начало формирования XML");И так далее, чтобы сузить область поиска.
—
Если конфигурация большая и поиск не даёт результата, попробуй:
— Сделать поиск по всему каталогу с исходниками (если есть).
— Попросить коллег, кто писал код, подсказать место.—
Если пришлёшь часть кода или название обработки/модуля, могу помочь точнее.
Ошибка
1С (Код)123456Ошибка при вызове метода контекста (ПрочитатьXML): Ошибка преобразования данных XDTO:Чтение объекта типа: {http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.ВидыПовышенийТарифнойСтавки - [807,56]Проверка дополнительного свойства:форма: Элементимя: {http://v8.1c.ru/8.1/data/enterprise/current-config}НеИспользуется: Ошибка проверки данных XDTO:Структура объекта не соответствует типу: {http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.ВидыПовышенийТарифнойСтавкиозначает, что при чтении XML через XDTO (обмен данными в 1С) структура XML не совпадает с ожидаемой структурой объекта конфигурации.
—
### Причина ошибки
В объекте справочника ВидыПовышенийТарифнойСтавки в XML-документе присутствует элемент (свойство)
НеИспользуется, который отсутствует или имеет другой тип в метаданных конфигурации, с которой вы пытаетесь прочитать этот XML.То есть:
— В XML есть поле
НеИспользуется.
— В конфигурации, в которой происходит чтение, такого реквизита нет или он имеет несовместимый тип.
— Из-за этого XDTO не может сопоставить XML с объектом.—
### Как выяснить причину и устранить
1. Проверьте метаданные конфигурации
— Откройте конфигуратор.
— Найдите справочникВидыПовышенийТарифнойСтавки.
— Проверьте, есть ли в нем реквизитНеИспользуется.
— Если его нет, а в XML он есть — это причина ошибки.2. Проверьте XML-файл
— Откройте XML, который вы пытаетесь прочитать.
— Найдите элементНеИспользуетсявнутри объектовВидыПовышенийТарифнойСтавки.
— Убедитесь, что структура XML соответствует текущей конфигурации.3. Сравните версии конфигураций
— Возможно, XML был выгружен из другой версии конфигурации, где реквизит
НеИспользуетсяприсутствовал.
— При загрузке в конфигурацию без этого реквизита возникает ошибка.4. Исправьте XML или конфигурацию
— Если возможно, удалите из XML все элементы
НеИспользуетсяперед загрузкой.
— Либо добавьте в конфигурацию реквизитНеИспользуетсяс соответствующим типом.
— Либо используйте правила конвертации, которые игнорируют этот реквизит.5. Используйте расширенную диагностику
— Включите трассировку или логирование при чтении XML.
— Посмотрите, на каком именно объекте и элементе происходит ошибка (у вас уже есть строка[807,56]— это строка и позиция в XML).
— Откройте XML в этом месте и посмотрите, что там.—
### Практические рекомендации
— Если вы делаете обмен между разными версиями конфигураций, всегда проверяйте соответствие метаданных.
— Для конвертации используйте механизм правил конвертации (КД2), чтобы исключить лишние реквизиты.
— Если ошибка возникает при загрузке из файла, попробуйте вручную удалить проблемный элемент из XML.
— Если ошибка в обмене через веб-сервисы — проверьте, что обе стороны используют совместимые версии конфигураций.—
### Кратко
Ошибка возникает из-за того, что в XML есть реквизит
НеИспользуется, которого нет в вашей конфигурации в справочникеВидыПовышенийТарифнойСтавки. Нужно либо привести XML и конфигурацию к одному виду, либо настроить правила конвертации, либо удалить этот реквизит из XML.—
Рекомендую посмотреть здесь, как работать с XDTO и правилами конвертации:
https://infostart.ru/public/572559/
https://infostart.ru/public/1137213/ -
АвторСообщения