Погуглил проблему. Везде пишут, что нужно заполнить юридический адрес из классификатора адресов. Скачал сегодняшний, обновил классификатор в БП, исправил адреса организации и контрагента (проверка адреса говорит, что все нормально). Пытаюсь выгрузить документ в файл (ЭДО), но получаю "Код страны грузополучателя: значение не заполнено". Что еще сделать? Где этот код заполняется?
В процедуру "ПроверитьЗаполнениеРеквизитовДереваДанных" вставил кусочек
#Вставка
//определение параметров поиска
ПараметрыПоиска = Новый Структура;
ПараметрыПоиска.Вставить("ПолныйПуть", "СведенияОГрузополучателе.НомерСтроки.Адрес.АдресИнформация.КодСтраны");
//поиск строк
мНайдСтроки = ДеревоДанных.Строки.НайтиСтроки(ПараметрыПоиска);
Если мНайдСтроки.Количество() > 0 Тогда
Если НЕ ЗначениеЗаполнено(ДеревоДанных.Строки[0].Значение) Тогда
// Если не заполнено, то вставляем код России
ДеревоДанных.Строки[0].Значение = "643";
КонецЕсли;
КонецЕсли;
#КонецВставки
А это как? Нужно просто сформировать XML-файл. Раньше с просто по кнопке "Еще..." из раздела "ЭДО" запускал "Выгрузить документ в файл". И такое и сейчас работает в другой базе.
(3) Упс, переформировать - это про ЭДО, а у Вас просто выгрузка в xml - если в файле не те данные, значит не те данные записаны в документе - попробуйте перевыбрать контрагента и организацию (не факт, что поможет), если не измениться, то запросом или редактором реквизитов каким-нибудь (например https://infostart.ru/1c/tools/100967/) посмотрите (исправьте), что записано в документе...Ну или убить документ совсем и сформировать новый, если по другому никак...
посмотрите (исправьте), что записано в документе...
В документе вроде бы все записано. Вероятно, просто где-то этот код не подтягивается, а где - найти не получается.
(4)
Ну или убить документ совсем и сформировать новый, если по другому никак...
Сделал новый документ, не проводил. Если переключатель "УПД" в состоянии "Выкл", то файл формируется. Если ставлю в положение "Вкл", получаю новое сообщение "Адрес грузополучателя: значение указано не верно". И где этот адрес? И что в нем не верно? Может в где-то в настройках нужно что-то указать? Совсем зае....!
- это как Расшифровать вроде - типа може записано може не?
Тут только отладчик в помощь...
Сложность в том, что я не могу найти те места, в которые эти значения должны быть записаны. Среди реквизитов документа РТиУ таких нет, а где они еще могут быть просто ума не приложу. Как при этом может помочь отладчик?
В процедуру "ПроверитьЗаполнениеРеквизитовДереваДанных" вставил кусочек
#Вставка
//определение параметров поиска
ПараметрыПоиска = Новый Структура;
ПараметрыПоиска.Вставить("ПолныйПуть", "СведенияОГрузополучателе.НомерСтроки.Адрес.АдресИнформация.КодСтраны");
//поиск строк
мНайдСтроки = ДеревоДанных.Строки.НайтиСтроки(ПараметрыПоиска);
Если мНайдСтроки.Количество() > 0 Тогда
Если НЕ ЗначениеЗаполнено(ДеревоДанных.Строки[0].Значение) Тогда
// Если не заполнено, то вставляем код России
ДеревоДанных.Строки[0].Значение = "643";
КонецЕсли;
КонецЕсли;
#КонецВставки
&ИзменениеИКонтроль("ПроверитьЗаполнениеРеквизитовДереваДанных")
Процедура БЭДО_ПроверитьЗаполнениеРеквизитовДереваДанных(ДеревоДанных, Ошибки, ЭтоТаблица,
НомерСтроки = Неопределено, ПроверятьОбязательностьПараметровОшибки = Истина, ДатаПоФорматуФНС = Ложь) Экспорт
НомерСтрокиДляПодстановки = ?(ЭтоТаблица, НомерСтроки, Неопределено);
СтрокаДерева = Неопределено; // в этой переменной будем хранить последнюю считанную строку дерева данных
#Вставка
//определение параметров поиска
ПараметрыПоиска = Новый Структура;
ПараметрыПоиска.Вставить("ПолныйПуть", "СведенияОГрузополучателе.НомерСтроки.Адрес.АдресИнформация.КодСтраны");
//поиск строк
мНайдСтроки = ДеревоДанных.Строки.НайтиСтроки(ПараметрыПоиска);
Если мНайдСтроки.Количество() > 0 Тогда
Если НЕ ЗначениеЗаполнено(ДеревоДанных.Строки[0].Значение) Тогда
// Если не заполнено, то вставляем код России
ДеревоДанных.Строки[0].Значение = "643";
КонецЕсли;
КонецЕсли;
#КонецВставки
Для Каждого СтрокаДерева Из ДеревоДанных.Строки Цикл
ТекстОшибки = "";
РеквизитЗаполненИлиОбязателен = ЗначениеЗаполнено(СтрокаДерева.Значение) ИЛИ НРег(СтрокаДерева.Обязательное) = "да";
// Проверяем заполнение самого реквизита.
ПроверитьЗаполнениеРеквизитаДереваДанных(СтрокаДерева, ПроверятьОбязательностьПараметровОшибки, ДатаПоФорматуФНС, ТекстОшибки);
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
ДобавитьОшибкуПроверкиДереваДанных(Ошибки, СтрокаДерева, ТекстОшибки,, НомерСтрокиДляПодстановки);
Продолжить;
КонецЕсли;
// Запускаем проверки подчиненных реквизитов, если это структурированное значение.
Если СтрокаДерева.Признак = "Таблица" И (ТипЗнч(СтрокаДерева.Значение) = Тип("Число") И СтрокаДерева.Значение > 0 ИЛИ СтрокаДерева.Обязательное = "Да")Тогда
Для Каждого СтрокаТаблицы Из СтрокаДерева.Строки Цикл
ПроверитьЗаполнениеРеквизитовДереваДанных(СтрокаТаблицы, Ошибки, Истина, СтрокаТаблицы.Значение,
РеквизитЗаполненИлиОбязателен И ПроверятьОбязательностьПараметровОшибки, ДатаПоФорматуФНС);
КонецЦикла;
ИначеЕсли СтрокаДерева.Признак = "Выбор" И (ЗначениеЗаполнено(СтрокаДерева.Значение) ИЛИ СтрокаДерева.Обязательное = "Да") Тогда
ПроверяемаяСтрока = СтрокаДерева.Строки.Найти(СтрокаДерева.ПолныйПуть + "." + СтрокаДерева.Значение, "ПолныйПуть");
Если ЗначениеЗаполнено(ПроверяемаяСтрока) Тогда
// Поскольку сменили текущую строку дерева, нужно проверить заполнение самого реквизита.
ПроверитьЗаполнениеРеквизитаДереваДанных(ПроверяемаяСтрока, ПроверятьОбязательностьПараметровОшибки, ДатаПоФорматуФНС, ТекстОшибки);
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
ДобавитьОшибкуПроверкиДереваДанных(Ошибки, ПроверяемаяСтрока, ТекстОшибки,, НомерСтрокиДляПодстановки);
Продолжить;
КонецЕсли;
ПроверитьЗаполнениеРеквизитовДереваДанных(ПроверяемаяСтрока, Ошибки, Ложь,,
РеквизитЗаполненИлиОбязателен И ПроверятьОбязательностьПараметровОшибки, ДатаПоФорматуФНС);
Иначе
ТекстОшибки = ТекстОшибкиНеЗаполненногоЗначенияДерева();
ДобавитьОшибкуПроверкиДереваДанных(Ошибки, СтрокаДерева, ТекстОшибки);
КонецЕсли;
ИначеЕсли СтрокаДерева.Признак = "Группа" И СтрокаДерева.Значение = Истина И СтрокаДерева.Строки.Количество() > 0 Тогда
ПроверитьЗаполнениеРеквизитовДереваДанных(СтрокаДерева, Ошибки, Ложь,,
РеквизитЗаполненИлиОбязателен И ПроверятьОбязательностьПараметровОшибки, ДатаПоФорматуФНС);
КонецЕсли;
КонецЦикла;
КонецПроцедуры