Показывать по
10
20
40
сообщений
Новая тема
Ответить
Сергей Интяшев
Дата регистрации: 29.01.2019
Сообщений: 1
Добрый день всем. При создании электронного документа выдает такую ошибку.
1С:Предприятие 8.3 (8.3.12.1685)
Бухгалтерия предприятия, редакция 3.0 (3.0.67.43)
Режим : Серверный, PostgreSQL
Не удается создать электронный документ, выдает ошибку: «Выполнение операции: Заполнение XDTO.
Ошибка установки значения свойства «НалСт».
Подробности см. в журнале регистрации.»
Сообщения из журнала регистрации:
Выполнение операции: Заполнение XDTO.
Ошибка установки значения свойства «НалСт».
{ОбщийМодуль.ОбменСКонтрагентамиВнутренний.Модуль(10673)}: Ошибка при вызове метода контекста (Установить)
ОбъектXDTO.Установить(ИмяСвойства, Значение);
по причине:
Несоответствие типов XDTO
по причине:
Ошибка проверки данных XDTO:
Значение: ‘20%’ не соответствует простому типу:
Значение не соответствует значениям фасета перечисления
————————————————————————————-
Выполнение операции: Формирование ЭД.
{ОбщийМодуль.ОбменСКонтрагентамиВнутренний.Модуль(8390)}: Выполнение операции: Заполнение XDTO.
Ошибка установки значения свойства «НалСт».
ВызватьИсключение ЭлектронноеВзаимодействиеСлужебный.СоединитьОшибки(Ошибки);
Помогите пожалуйста, может кто сталкивался с данной проблемой
Ленар Ленарович
Дата регистрации: 15.03.2019
Сообщений: 1
Нужно обновить 1С до определенного релиза. Для «Бухгалтерия предприятия», редакция 3.0 необходимо обновиться до релиза 3.0.67.67
Показывать по
10
20
40
сообщений
Клиент поставил задачу — добавлять в основание документа не только документ но и счет на оплату (основание реализации).
Сначала я смотрю, где выводится основание передачи, там действительно указан договор:
Выгружаю в файл, нахожу, где это в тегах XML:
Запускаем монитор производительности и смотрим, где заполняется ОснПер (ищем поиском в логе кода ОснПер), находим что это процедура ЗаполнитьДокумент_УПД2019_ИнформацияПродавца модуля ФорматыЭДО_ФНС:
Если в отладчике поправить значения:
То можно убедиться, что отображение тоже меняется:
Не хочется добавлять весь длинный код формирования кода ЭДО в директиву «Изменение и контроль». Но тут встречается проблема. В этом длинном коде после окончания формирования нет ни одной функции, куда передавались бы одновременно Документ и ДеревоДанных, увы. Есть только вызов ЗаполнитьСведенияОПодписантах, но он вызывается не всегда (внутри Если):
Сначала я хотел использовать доработки в функцию ПроверитьОбъектXDTO модуля ФорматыЭДО_ФНС, но увы, туда не передается ДеревоДанных.
Поэтому буду использовать свой метод спуска параметра в стек. Сначала я хотел вставить ссылку на документ в дерево данных, как написано в моей статье. Но раз использую параметры сеанса, это уже не требуется (код вставки ссылки в дерево закомментирован):
&Вместо("СформироватьДанныеОсновногоТитулаПоОбъектуУчета") Функция эдоко_СформироватьДанныеОсновногоТитулаПоОбъектуУчета(ОбъектУчета, Настройки, Данные) // https://geniy1s.ru/razbiraem-novoe-edo-ot-1s-v-bp3-iyun-2021/ //Не буду использовать, помещаю сразу в параметры сеанса //Использовать: ТекСсылкаНаОбъект = ДеревоЭлектронногоДокументаБЭД.ЗначениеРеквизитаВДереве(ДеревоДанных, "дор_ОбъектУчета"); //НСтр = Данные.ДанныеДокумента.Строки.Добавить(); //НСтр.ПолныйПуть = "дор_ОбъектУчета"; //НСтр.Значение = ОбъектУчета; УстановитьПривилегированныйРежим(Истина); //Чтобы работать с параметров сеанса, на который не назначены права ПараметрыСеанса.эдоко_ДанныеДляЗаполнения = Новый ФиксированнаяСтруктура(); //Очищаем Если ТипЗнч(ОбъектУчета) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда Если ЗначениеЗаполнено(ОбъектУчета.СчетНаОплатуПокупателю) Тогда Структура = Новый Структура(); Номер = ""; ЭлектронноеВзаимодействиеПереопределяемый.ПолучитьПечатныйНомерДокумента(ОбъектУчета.СчетНаОплатуПокупателю, Номер); Дата = Формат(ОбъектУчета.СчетНаОплатуПокупателю.Дата, "ДФ=dd.MM.yyyy"); Структура.Вставить("Номер", Номер); Структура.Вставить("Дата", Дата); Структура.Вставить("Представление", "Счет на оплату № " + Номер + " от " + Дата); ПараметрыСеанса.эдоко_ДанныеДляЗаполнения = Новый ФиксированнаяСтруктура(Структура); КонецЕсли; КонецЕсли; Результат = ПродолжитьВызов(ОбъектУчета, Настройки, Данные); //формирвоание титула после добавления ссылки, т.к. там все и происходит Возврат Результат; КонецФункции
К тому же, этот код будет работать намного дольше и в разных релизах, т.к. не привязан к длинному исходному коду через «Изменение и контроль».
Теперь осталось только добавить элемент в список оснований:
&Вместо("ПроверитьОбъектXDTO") Функция эдоко_ПроверитьОбъектXDTO(Знач ОбъектXDTO, Ошибки) //Добавляем УстановитьПривилегированныйРежим(Истина); //Чтобы работать с параметров сеанса, на который не назначены права Если ТипЗнч(ПараметрыСеанса.эдоко_ДанныеДляЗаполнения) = Тип("ФиксированнаяСтруктура") Тогда ДопДанные = Новый Структура(ПараметрыСеанса.эдоко_ДанныеДляЗаполнения); Номер = ""; Дата = ""; Представление = ""; Если ДопДанные.Свойство("Представление", Представление) И ДопДанные.Свойство("Дата", Дата) И ДопДанные.Свойство("Номер", Номер) Тогда Попытка СписокXDTO = ОбъектXDTO.Получить("Документ/СвПродПер/СвПер").ПолучитьСписок("ОснПер"); ПространствоИмен = ПространствоИмен_УПД2019_ИнформацияПродавца(); ОснПер = ПолучитьОбъектТипаCML("Файл.Документ.СвПродПер.СвПер.ОснПер", ПространствоИмен); ОснПер.НаимОсн = Представление; ОснПер.НомОсн = Номер; ОснПер.ДатаОсн = Дата; СписокXDTO.Добавить(ОснПер); Исключение КонецПопытки; КонецЕсли; КонецЕсли; Результат = ПродолжитьВызов(ОбъектXDTO, Ошибки); Возврат Результат; КонецФункции
В отладчике проверяю, как вы глядит добавляемый элемент списка XDTO со счетом-основанием:
В печатной форме 1С выводит эти теги так:
В XML-формате список оснований выглядит так:
Клиент говорил, что выгрузку счета можно сделать не программно, а через настройки ЭДО с контрагентом — через дополнительные поля. Но некоторые системы ЭДО игнорируют дополнительные поля, поэтому пока они вне стандарта, приходится делать программную доработку.
Думал уложусь в 1 час, но потратил 2, т.к. не хотел использовать «Изменение и контроль» и пришлось писать хитрый код по спуску контекста в стеку. Такой код проживет дольше при обновлениях 1С.
Среда: 3.0.116.32 Объем: 2 час
Показывать по
10
20
40
сообщений
Новая тема
Ответить
Сергей Интяшев
Дата регистрации: 29.01.2019
Сообщений: 1
Добрый день всем. При создании электронного документа выдает такую ошибку.
1С:Предприятие 8.3 (8.3.12.1685)
Бухгалтерия предприятия, редакция 3.0 (3.0.67.43)
Режим : Серверный, PostgreSQL
Не удается создать электронный документ, выдает ошибку: «Выполнение операции: Заполнение XDTO.
Ошибка установки значения свойства «НалСт».
Подробности см. в журнале регистрации.»
Сообщения из журнала регистрации:
Выполнение операции: Заполнение XDTO.
Ошибка установки значения свойства «НалСт».
{ОбщийМодуль.ОбменСКонтрагентамиВнутренний.Модуль(10673)}: Ошибка при вызове метода контекста (Установить)
ОбъектXDTO.Установить(ИмяСвойства, Значение);
по причине:
Несоответствие типов XDTO
по причине:
Ошибка проверки данных XDTO:
Значение: ‘20%’ не соответствует простому типу:
Значение не соответствует значениям фасета перечисления
————————————————————————————-
Выполнение операции: Формирование ЭД.
{ОбщийМодуль.ОбменСКонтрагентамиВнутренний.Модуль(8390)}: Выполнение операции: Заполнение XDTO.
Ошибка установки значения свойства «НалСт».
ВызватьИсключение ЭлектронноеВзаимодействиеСлужебный.СоединитьОшибки(Ошибки);
Помогите пожалуйста, может кто сталкивался с данной проблемой
Ленар Ленарович
Дата регистрации: 15.03.2019
Сообщений: 1
Нужно обновить 1С до определенного релиза. Для «Бухгалтерия предприятия», редакция 3.0 необходимо обновиться до релиза 3.0.67.67
Показывать по
10
20
40
сообщений
Читают тему:
При входе в базу 1с вы можете увидеть “Ошибка преобразования данных XDTO:
Начало Свойства: errorProcessingSettings
Форма: Элемент
Тип: {http://v8.1c.ru/8.2/managed-application/core}ErrorProcessingSettings по причине
Чаще всего ошибка возникает при определенном типе запуска: это либо через тонкий клиент, либо через линк42, случаи бывают разные. Через браузер такие базы запускаются без ошибок.
Есть простое решение данной проблемы.
Достаточно запустить базу доступным нам способом (где нет ошибки) включить Функции тех. специалиста (Меню — Настройки — Параметры — Режим технического специалиста)
В Функциях для технического специалиста ищем Управление настройками обработки ошибок (Стандартные)
Запускаем
Готово!
Уже более 10 000 компаний работают
в облачной 1С от 42Clouds
— Консультация по 1С Бесплатно!
— Поддержка 24/7 по техническим вопросам: в чате, по телефону, по почте
— Все типовые конфигурации онлайн, доступ через RDP, Remote App, Web
Здравствуйте.
помогите разобраться
Выполнение операции: Заполнение XDTO.
Ошибка установки значения свойства «Name»!
{ОбщийМодуль.ЭлектронныеДокументыВнутренний.Модуль(15686)}: Ошибка при вызове метода контекста (Установить)
ОбъектXDTO.Установить(ИмяСвойства, Значение);
по причине:
Несоответствие типов XDTO
по причине:
Ошибка проверки данных XDTO:
Значение: ‘ExpInvoiceAndPrimaryAccountingDocumentCustomer’ не соответствует простому типу:
Значение не соответствует значениям фасета перечисления
вот это значение в фасет передается в стоковом типе. что не так не пойму.
Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов