Найди ошибку в алгоритме конвертации файлов

Обновлено: 07.07.2024

Эта проблема не распространяется на Office 2013 и более новые версии, поскольку они поддерживают стандартные форматы Open XML. Для получения дополнительной информации см. Форматы Open XML и расширения имен файлов.

Поддержка Office 2010 прекращается 13 октября 2020 г. Это означает, что корпорация Майкрософт больше не предоставляет техническую поддержку, исправления ошибок или обновления безопасности, а клиенты, которые продолжают использование, могут столкнуться с повышенными рисками безопасности и проблемами с соответствием требованиям с течением времени. Корпорация Майкрософт рекомендует клиентам обновление до либо приложений Microsoft 365, либо Office LTSC 2021. Для получения дополнительной информации см. Поддержка Office 2010 и Office 2016 для Mac — закончилась: Полезные сведения — блог Microsoft 365.

Симптомы

Файл был создан более поздней версией Microsoft Excel. Чтобы открыть его, требуется конвертер. Загрузить конвертер с веб-сайта Microsoft Office?

Этот файл не может быть открыт с помощью Microsoft Excel. Выполнить поиск конвертера для открытия данного файла на веб-сайте Microsoft Office Online?

Причина

Возможно, файл, который вы пытаетесь открыть (.docx, .xlsx или .pptx), был создан с помощью стороннего программного продукта (не от корпорации Майкрософт), соответствующего международному стандарту ISO/IEC 29500 Office Open XML (OOXML). Тем не менее, Word 2010, Excel 2010 и PowerPoint 2010 (а также Word 2007, Excel 2007 и PowerPoint 2007) не поддерживают все стандарты ISO/IEC 29500.

Решение

Чтобы решить эту проблему, выполните описанные ниже шаги.

Перейдите в Центр загрузки Майкрософт, чтобы скачать и установить OOXML Strict Converter для Office 2010.

Откройте файл еще раз в Word 2010, Excel 2010 или PowerPoint 2010.

Снимок экрана нажатия кнопки «Открыть».

Когда файл откроется, выберите Сохранить как, чтобы сохранить файл в стандартном формате Word 2010, Excel 2010 или PowerPoint 2010.

Если вы все еще испытываете проблемы после запуска этой процедуры, обратитесь к следующим блогам Office, где вы сможете найти дополнительные материалы, которые могут быть полезными:

Дополнительная информация

Файлы документа Word (.docx), книги Excel (.xlsx) или презентации PowerPoint (.pptx) можно создавать сторонними программными продуктами, используя стандарты, описанные в документе ISO/IEC 29500. Таким образом, версии Office, вышедшие после набора приложений Microsoft Office 2007 с пакетом обновлений 2 (SP2), поддерживают многие требования стандарта ISO/IEC 29500. Однако не все стандарты поддерживаются в Microsoft Office.

Алгоритм "для загрузки". Похоже разобрался. Параметры перед вызовом описал и заработало.
Если кому понадобится, вот:
ДокументОбъект = Объект;
ВидСчетаФактуры = "СчетФактураПолученный";
Отбор = Неопределено;
НомерСФ = ПараметрыОбъекта.Получить("НомерСФ");
ДатаСФ = ПараметрыОбъекта.Получить("ДатаСФ");
Выполнить(Алгоритмы.ВвестиСчетФактуру); Вот так ошибок нет.
ДокументОбъект = Объект. Ссылка ;
ВидСчетаФактуры = "СчетФактураПолученный";
Отбор = Неопределено;
НомерСФ = ПараметрыОбъекта.Получить("НомерСФ");
ДатаСФ = ПараметрыОбъекта.Получить("ДатаСФ");
Выполнить(Алгоритмы.ВвестиСчетФактуру); А почему сразу мутабельные? Или как понять:если неизвестен тип данных, значит тип мутабельный?

Похоже Объект - Произвольный - загруженный объект.

А Ссылка – Произвольный – ссылка на найденный объект в информационной базе.
И для алгоритма именно ссылка была нужна.
ЗЫ Понятней не могу. Мозг кипит.

(7) dyuha, Просто пытался передать в алгоритм непосредственно сам объект, а нужно передавать только ссылку! Технически передавая объект в алгоритме при обработке должен создаться его дубликат и установить с ним связь на изменение, при этом объекты по сути независимы друг от друга, а передавая ссылку в алгоритм позволяешь ему работать непосредственно с самим объектом!
(6) Bukaska, не тип мутабельный, а значения мутабельные. :) Я просто знаю что в клиент-серверном варианте, без указания некоторых настроек(с типами данных всё ОК), и то прога начнёт вопить, что вы с клиента на сервер пытаетесь передать мутабельные значения.. Хотя всего-то.. где-то галочки может не хватать))) Логично!
В КД параметры передаются не в вызове алгоритма, а предварительно, а объект может быть передан только ссылкой! :)
Главное начать думать, решение и придет! Помогите разобраться, кто с этим сталкивался.
Имею Правила обмена между УТ 8.1 и БП 8.2, есть алгоритм "при загрузке"

В ПКС Приемник и Источник не заполнены. указано "данные передавать в параметр", в обработчике "при выгрузке"

Имя параметра, как и в алгоритме "НаименованиеДоговора".

При выгрузке из УТ ошибка "Поле объекта не обнаружено", исправляю тем что в ПКС ставлю Источник - "ДоговорКонтрагента".
Выгрузка проходит, но при загрузке в БП ошибка "Значение не является значением объектного типа (Получить)". Получается что ошибка в алгоритме в этом кусочке

Может кто-нибудь сможет подсказать, что не так?

(11) Kitri, добавлю, что в ПКО (в документе) "после загрузки"
При загрузке в БП ошибка "Получение элемента по индексу для значения не определено"

Обработчики "Правила конвертации объектов"
После загрузки
Условия возникновения события
Только для платформы V8.
Событие выполняется после прочтения и установки атрибутов объекта из файла, но до его записи в информационную базу. Возможна модификация загруженного объекта.

Параметры:
Отказ - Булево - Если Истина, то объект загружен не будет.

Объект - Произвольный - загруженный объект.

Ссылка – Произвольный – ссылка на найденный объект в информационной базе.

ОбъектНайден - Булево. Если значение параметра равно Ложь, то объект не идентифицирован, то есть не найден в информационной базе

ПараметрыОбъекта - либо Неопределено либо Соответствие, в котором хранятся дополнительные параметры переденные для данного объекта из источника в приемник. Если параметров передано не было, то ПараметрыОбъекта = Неопределено.

обработчики конвертации данных

Обработчики и алгоритмы пишутся на языке той платформы, в которой они будут выполняться при обмене.

Настройка отладки обработчиков правил обмена

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Шаг 1: Выбор режима отладки алгоритмов

В первую очередь выберите режим отладки алгоритмов:

  • Без отладки алгоритмов.
  • Вызывать алгоритмы как процедуры.
  • Подставлять код алгоритмов по месту вызова.

Шаг 2: Формирование модуля отладки

Шаг 3: Создание внешней обработки

Запустите конфигуратор и создайте внешнюю обработку. В модуль обработки вставьте текст сгенерированного модуля и сохраните обработку под любым именем.

Шаг 4: Подключение внешней обработки

После выполнения описанной настройки можно запускать выгрузку или загрузку в режиме отладки. При этом в распоряжении разработчика имеется весь функционал Конфигуратора по отладке кода внешней обработки.

Пример передачи параметров алгоритму

Алгоритм Перед выгрузкой данных

Перед обработкой

В теле алгоритма получаем переданные параметры:

Произвольный алгоритм

Заключение

Привет.
Кто ковырялся уже с этой конфой, подскажите как подгрузить алгоритмы для правил конвертации? Делаю по мануалу: выгрузил обработкой модули ПОД, выгрузил в текстовик общий модуль менеджера универсального обмена.Загрузил в кд структуру конфигурации и обработчики из файлов, включая общий модуль.В правилах обмена все появилось, кроме алгоритмов, на которые ссылаются ПКО.

Выгрузил из новой УТ 11.2.
Одного клиента угораздило обновиться и понеслось: новые механизм обмена с БП 3.0 с ошибками, ошибки при регистрации изменений для Универсального плана обмена.
Решил разобраться с ошибкой в в типовых правилах обмена через EnterpriseData

А вот конкретная ошибка при выгрузке контрагентов:
: Не найдено правило конвертации для значения предопределенных данных.

С алгоритмами вроде разобрался.
а вот ошибку в (3) пришлось исправлять внесением изменений в общий модуль XDTOСервер,тупо на ищет соответствие предопределенных элементов справочника КИ по значению

(2) Для УТ 11.2 обычные правила КД2 не работают? У меня тоже есть один желающий обновиться на УТ 11.2

(7) Не работают.Хотя может и есть какой-то хитрый способ, про который я не в курсе

(8) счас посмотрел, что все-таки можно.НО!В 11.2 переименовали некоторые реквизиты документов(например, СФ выданная) или целые справочники ЕдиницыИзмерения, УпаковкиЕдиницИзмерения, добавив префикс "Удалить".
Т.е даже старые типовые правила не работают

А с новым форматом они конечно унифицировали правила обмена через посредника в виде EnterpriseData, но если раньше можно было доработать правила обмена и загрузить из файла, то теперь надо включать возможность изменения для конфигурации, чтобы залить модуль менеджера универсального обмена, которые генерит КД 3.0

(10) тут этого никто не знает пока, ты давай ковыряйся нам потом расскажешь

(11) насколько известно пока в кд3 нет механизма всосать код этого ОМ

Описание ошибки:
Доработка правил обмена для односторонней выгрузки из базы конфигурации 1С: Управление торговлей ред.10.3 в базу конфигурации 1С: Бухгалтерия прдприятия, ред.3.0.

Для подобного рода доработки традиционно были взяты правила конвертации из УТ 10.3 в БП 3.0, предназначенные для выгрузки, инициируемой в базе УТ 10.3.

После доработки в правиле конвертации объекта "КорректировкаРеализации" (на скрине ниже приведен пример доработки для автоматической установки в документе после выгрузки в базу БП признака "Бухгалтерский учет прошлого года закрыт для корректировки (отчетность подписана)" для случая, когда в поле "Основание" находится документ, год даты которого меньше, чем год даты документа корректировки; так же в поле "Статья прочих доходов и расходов" устанавливается предопределенный элемент справочника "Исправительные записи по операциям прошлых лет") и теста обмена доработка не сработала.



Было понятно, что с новой редакцией Бухгалтерии 3.0, разработчики могли поменять что-то в привычном механизме. Благодаря обсуждению на форуме Конвертация данных. ПКО ПослеЗагрузкиОбъекта не срабатывает решение было найдено:

1с 8 конвертация данных не срабатывает после загрузки объекта



Извлекаем из сохраненного архива файл CorrespondentExchangeRules.xml.


Добавляем в файл правил конвертации необходимые доработки. Обновляем в архиве.


Загружаем в "Параметры синхронизации данных". Оставляем вариант "Загрузить из файла на компьютере".


После проведенных операций. Выгрузка/загрузка документов из УТ 10.3 в БП 3.0 с доработкой обработчика "после загрузки" правил конвертации объекта стала выполняться как необходимо.

Читайте также: