Что значит отклонено 1с при подаче документов
Топ 11 ошибок начинающих 1с программистов
Довольно часто начинающие 1С разработчики сталкиваются с ошибками, которых достаточно легко избежать. Ниже мы рассмотрим топ 11 ошибок и способы их исправления. Также доступна видеоверсия статьи
Содержание
Поле объекта не обнаружено
Существует множество статей, которые описывают возможные причины возникновения в 1С ошибки «Поле объекта не обнаружено». Порой это связывают с обновлением платформы, обновлением типового релиза, или с какими-то другими причинами.
Мы же будем оперировать фактами. В конце статьи прилагается внешняя обработка, в которой воспроизведена данная ошибка.
Вуаля — платформа выдаст ошибку «Поле объекта не обнаружено»!
Как исправить? Исходя из природы ошибки — переименовать реквизит на нужное имя, отредактировать код, или использовать правильные обращения к стандартным свойствам объекта.
Например, у объекта «СообщениеПользователю» нет свойства «Таблица», и следующий код приведет к ошибке:
Сообщение = Новый СообщениеПользователю;
Сообщение.Таблица = «Ошибка»;
Индекс находится за границами массива
Что означает такое сообщение системы? Как правило, с данной ошибкой разработчик сталкивается при некорректной работе с коллекциями. Самые частые случаи появления ошибки «Индекс находится за границами массива».
Как исправить? Для удаления элементов из коллекции по условию — использовать обратный цикл. Добавлять условие на соответствие счетчика цикла и индекса массива. Не увеличивать счетчик внутри кода цикла Для … Цикл … КонецЦикла
Обращение к процедуре как к функции
Суть этой ошибки в том, что процедура не может возвращать значение. И если мы в коде используем вызов процедуры справа от знака присваивания, это приведет к ошибке.
Данная ошибка имеет две вариации — если используется стандартная процедура из методов какого-нибудь объекта, то фраза будет звучать «Обращение к процедуре объекта как к функции». Если же использовать процедуру, объявленную в коде, то текст ошибки будет «Обращение к процедуре как к функции».
При этом ошибка использования процедуры объекта является ошибкой времени выполнения — т.е. на этапе сохранения и проверки конфигурации платформа эту ошибку не обнаружит.
А вот неправильное использование процедуры синтаксическая проверка (Ctrl + F7) успешно обнаруживает, и не даст сохранить конфигурацию или внешнюю обработку/отчет, пока ошибка не будет устранена.
Рассмотрим два примера:
Как исправить? Ошибка тривиальная, и исправление тоже. Чаще всего, достаточно внимательно прочитать описание методов объекта во встроенной справке или синтакс-помощнике. Если метод является процедурой, то значений он возвращать не может. Следовательно, нужно модифицировать код так, чтобы такого ошибочного вызова не было.
Если же используется процедура, объявленная в коде, возможно, есть необходимость изменить ее на функцию, либо также скорректировать код, который эту процедуру использует.
Процедура не может возвращать значение
Переменная не определена
Такой текст ошибки платформа 1С выдает на этапе синтаксического контроля, при сохранении конфигурации, внешнего отчета или обработки.
Причин у этой ошибки может быть несколько.
Внимательно следить за правильностью набранного кода, своевременно объявлять переменные или передавать их в качестве параметров. Писать серверный код только в серверных модулях, а также использовать соответствующие инструкции препроцессора, например «&НаСервере».
Значение не является значением объектного типа
Ошибка «Значение не является значением объектного типа» может возникнуть при неверном обращении к объекту языка. Объектный тип — это такие объекты языка, которые содержат в себе другие объекты — свойства, реквизиты и т.п. Эти свойства доступны через точку, например «Объект.СвойствоЭтогоОбъекта»
Но если через точку попытаться использовать какое-то значение, которое внутри себя свойств не имеет — например, любое значение примитивного типа — это и приведет к ошибке.
Разберем более сложный пример:
Ошибка может быть «плавающей». Если вместо параметра по умолчанию «Справочники = Ложь» будет передан менеджер справочников, то ошибки возникать не будет. А если вызвать процедуру без параметров, то будет использоваться параметр по умолчанию с типом Булево, что и приведет к ошибке.
Чаще всего чтобы исправить ошибку, нужно в отладчике посмотреть, какой тип значения используется. Можно внести изменения в код, чтобы обеспечить корректное поведение (например, в запросе вместо наименования товара выбрать ссылку, и в коде через точку уже обращаться к свойствам ссылки, а не текстового наименования). А можно добавить проверку на нужный тип значения. Т.е. — если значение того типа, который мы ожидаем — выполняем код. Иначе — не выполняем.
Ошибка при вызове метода контекста
В языке 1С у разных объектов (запросов, справочников, табличных документов и др.) есть предопределенные методы, предусмотренные платформой. Обращение к этим методам требует соблюдения порядка и параметров, правильного синтаксиса и соблюдения условий использования. Например, при чтении табличного документа из файла он не должен быть открыт в другой программе, при подключении к http-соединению оно должно быть доступно, и т.п.
Если эти условия не соблюдать, платформа в зависимости от версии может выдавать сообщения вида «Ошибка при вызове метода контекста», и далее будут следовать более подробные сведения об ошибке — стек вызовов, приведших к ошибке, номер строки и позиции в строке, где произошла ошибка.
Чаще всего ошибка при вызове метода контекста встречается в следующих методах:
В тексте запроса допущена ошибка — после первого условия «ГДЕ ИСТИНА» указан оператор И, но после него нет еще одного условия. В результате при попытке выполнения запроса, платформа вернет ошибку.
Для исправления ошибки зачастую достаточно внимательно использовать методы, при необходимости уточнять порядок, количество и тип параметров — это можно сделать в справке или синтакс-помощнике (встать курсором на имя метода в коде, и нажать сочетание клавиш Ctrl+F1). В случае запроса — нужно передавать синтаксически корректный текст запроса; в случае проверки вывода на печать — в системе должен быть установлен принтер; в случае подключения к почте — должны быть корректно указаны логин и пароль, и т.п.
Тип не может быть выбран в запросе в 1С 8.3 (8.2)
С такой ошибкой начинающие разработчики (да и не только начинающие 😉 ) сталкиваются чаще всего, при чтении запросом данных из таблиц значений, либо из регистров сведений. Все дело в том, что запросы поддерживают далеко не все типы значений. Так, например, нельзя запросом выбрать тип Картинка, ХранилищеЗначений, Шрифт, и многие другие типы, которые не относятся к примитивным или ссылочным типам значений.
Так, если ресурс регистра сведений имеет тип ХранилищеЗначений, выбрать его запросом будет нельзя. Также, если в таблицу значений поместить значения не подходящих типов, а после передать эту таблицу в качестве параметра-источника данных, выполнение запроса также приведет к ошибке «Тип не может быть выбран в запросе».
Еще одна ситуация, когда запрос будет выдавать ошибку — если таблица значений, которая передается в качестве параметра, имеет не типизированные колонки.
Для исправления ошибки нужно правильным образом инициализировать колонки таблицы значений, а также не обращаться в запросе к полям, типы которых запросами не поддерживаются.
Использование в 1С модальных окон в данном режиме запрещено
Платформа будет выдавать такое сообщение, если в коде используются методы, приводящие к открытию модальных окон. Модальные окна — это окна, которые при открытии блокируют весь остальной интерфейс. В 1С есть несколько модальных методов — например — «Вопрос», «ОткрытьЗначение», «Предупреждение». Кроме того, в коде может использоваться модальный синтаксис открытия форм: «ОткрытьМодально()»
Если в свойствах конфигурации выбран режим использования модальности «Не использовать», то выполнение модальных методов будет приводить к этой ошибке «Использование в 1С модальных окон в данном режиме запрещено».
Для устранения ошибки можно пойти несколькими путями. Как водится, один — быстрый, другой — правильный 🙂
Быстрый способ — переключить режим использования модальности в положение «Использовать».
Более правильный способ — использовать в коде немодальные вызовы методов. Например, у метода «Вопрос» есть немодальный аналог — «ПоказатьВопрос», у метода «Предупреждение» — «ПоказатьПредупреждение», и т.п. Чаще всего об этих методах дополнительно указано в синтакс-помощнике и справке.
Кроме того, в последних версиях платформы появились асинхронные методы — «ВопросАсинх», «ПредупреждениеАсинх» и др. Появление этих методов позволяет писать более простой и понятный асинхронный код, и направлено в первую очередь, на более полноценную поддержку браузерами и работу в веб-клиенте.
1С 8.3 и 8.2: Запись с такими ключевыми полями существует!
Данная ошибка появляется при некорректной записи в регистр сведений. Чаще всего с этой ошибкой сталкиваются начинающие разработчики, не до конца понимающие механизмы работы с ключевыми полями (измерениями).
Суть ошибки следующая — регистр сведений позволяет записать запись (строку таблицы) с уникальным набором ключевых полей — а для периодических регистров также и поля Период. Если следующая запись полностью повторяет значение ключевых полей, но осуществляется методом Записать с параметром Замещать = Истина, то запись в таблице регистра просто заменится на идентичную.
Однако если поместить две абсолютно одинаковые записи в набор записей, и попытаться его записать — платформа выдаст ошибку. Еще один распространенный случай, когда 1С сообщает «Запись с такими ключевыми полями существует» — это запись в периодический регистр сведений с периодичностью от «День» и выше, подчиненный регистратору.
В типовых конфигурациях часто эту ошибку можно воспроизвести, если в пользовательском режиме создать два документа «Установка цен номенклатуры» с одной и той же номенклатурой и за один и тот же день. Попытка провести второй документ приведет к ошибке.
В случае, когда ошибка возникает не в результате действий пользователя, а при выполнении кода, чтобы устранить ее, чаще всего необходимо проанализировать алгоритм записи в регистр. Если запись осуществляется одним набором данных, его предварительно нужно свернуть до уникальных записей. Например, выгрузить в таблицу значений, свернуть, и загрузить в набор записей.
Поле объекта недоступно для записи в 1С
Исполнение данного кода приведет к ошибке, т.к. поля ссылки доступны только для чтения, а метод НайтиПоКоду вернет именно ссылку. Чтобы можно было внести изменения, следует из ссылки получить сам объект — используя соответствующий метод ПолучитьОбъект().
Для исправления ошибки зачастую достаточно получить объект из ссылки. В случае же попытки редактирования свойств, доступных только на чтение самый правильный подход — анализировать имеющуюся документацию по этим свойствам, и не пытаться присваивать им значения, если платформа этого не предусматривает.
Ссылка на обработку
По ссылке вы можете скачать внешнюю обработку, в которой воспроизводится большая часть ошибок, описанных в статье. Для воспроизведения части ошибок нужно будет убрать комментарии в коде.
1С:Документооборот.
Новое в версии 2.0.5
Введение
Этот документ является дополнением к документации по конфигурациям «Документооборот КОРП», «Документооборот ПРОФ», «Документооборот государственного учреждения» и содержит только описание отличий версии 2.0.5 от версии 2.0.4.
Процессы и задачи
Указание фактического исполнителя задачи
Версии: ПРОФ, КОРП, ДГУ.
В новой версии программы появилась возможность выполнять задачи не только от имени исполнителя, указанного в задаче, но и от имени текущего пользователя.
Для использования этой возможности предусмотрена новая настройка Фактический исполнитель задач (Настройка и администрирование – Настройка программы – Процессы и задачи).
Рис. 1. Настройка «Фактический исполнитель задач»
Настройка определят порядок указания фактического исполнителя задачи. Предусмотрено три варианта настройки:
Рис. 2. Выбор исполнителя делегированной задачи
При выполнении задачи от имени текущего пользователя в историю попадает запись следующего типа:
02.06.2015 14:15, Великанова Л.А. (управляющий делами) (вместо Федоров О.П. (директор)). Согласовано с замечаниями.
Фоновый старт процессов
В новой версии программы старт процесса можно выполнить в фоновом режиме. Это позволит сократить среднее время старта процесса.
Обратите внимание: возможность доступна только в клиент-серверной информационной базе.
Стартом процессов в фоновом режиме управляет настройка Использовать фоновый старт процессов (Настройка и администрирование – Настройка программы – Процессы и задачи). По умолчанию настройка включена.
Рис. 3. Настройка «Использовать фоновый старт процессов»
Фоновый старт процессов работает следующим образом: при нажатии кнопки Стартовать и закрыть, процесс записывается и добавляется в специальную очередь. Эта очередь обрабатывается регламентным заданием Старт процессов без участия пользователя. По умолчанию регламентное задание выполняется каждые 10 секунд.
Совместная работа
Дополнительные свойства для мероприятий различных видов
В новой версии программы появилась возможность настраивать отдельные наборы свойств для мероприятий различного вида.
Благодаря этому настройка различных видов мероприятий станет более гибкой. Например, теперь для вида мероприятия Дистанционный курс можно создать дополнительные реквизиты Записавшиеся на курс и Завершившие обучение без дополнительных доработок конфигурации.
Рис. 4. Дополнительные свойства в карточке мероприятия
Создать дополнительные свойства для вида мероприятия можно по команде Наборы дополнительных реквизитов и сведений в меню раздела Настройка и администрирование.
Рис. 5. Настройка дополнительных свойств в разрезе видов мероприятий
Обмен данными
Синхронизация с «1С:Управлением холдингом»
В новой версии программы появилась возможность синхронизации данных между «1С:Документооборотом 8» и «1С:Управлением холдингом».
Для предприятий, совместно использующих эти конфигурации, синхронизация поможет избежать дублирования нормативно-справочной информации (далее НСИ), ошибок и трудозатрат, связанных с ее изменением.
Синхронизация данных работает следующим образом:
Обмен нормативно-справочной информацией двусторонний, за исключением проектов и проектных задач, которые могут выгружаться только из «1С:Документооборота 8» в «1С:Управление холдингом», но не обратно.
Обмен документами – односторонний. Согласованные документы выгружаются в «1С:Управление холдингом» один раз и не синхронизируются при последующих изменениях.
На основании согласованных внутренних документов «1С:Документооборота 8» можно создавать договоры контрагентов и заявки на операции.
Из «1С:Управления холдингом» в «1С:Документооборот 8» выгружаются сведения об оплате заявок:
При использовании обмена документами в «1С:Документообороте 8» рекомендуется установить настройку доступности по состояниям, закрыв от изменения согласованные документы тех видов, которые выгружаются в «1С:Управление холдингом».
Для настройки синхронизации рекомендуется использовать способ, описанный в файле Совместное использование.htm (в составе дистрибутива). Особое внимание следует уделить настройкам:
Рис. 6. Настройка дополнительных свойств в разрезе видов мероприятий
Данные настройки помогут адаптировать предложенный по умолчанию вариант синхронизации под нужды вашего предприятия. Причем не важно, на стороне какой из конфигураций вы настраиваете обмен. Помощник последовательно запросит настройки и для «1С:Документооборота 8», и для «1С:Управления холдингом».
По умолчанию для синхронизации указаны следующие настройки:
Для заявок на операции в «1С:Документообороте 8» рекомендуется включить ведение учета по статьям движения денежных средств. Для этого в карточках соответствующих видов внутренних документов предусмотрена настройка Вести учет по статьям ДДС. Настройка доступна только для видов документов, по которым ведется учет сумм.
Если вы согласны с этими настройками, нажмите Далее. Если хотите их изменить, перейдите к настройкам выгружаемых и загружаемых данных по гиперссылкам Изменить правила выгрузки данных и Изменить значения автоматического заполнения.
Настройка выгружаемых данных
Настройка открывается по гиперссылке Изменить правила выгрузки данных. С ее помощью можно выбрать, какие данные вы хотите синхронизировать и установить для них ограничение.
Рис. 7. Настройка выгружаемых данных
Ограничивать выгрузку организациями. Настройка актуальна в том случае, если на вашем предприятии учет по организациям ведется в разных базах «1С:Управления холдингом». Настройка позволяет ограничить выгрузку только теми данными, которые необходимы для каждой из баз.
Если флажок установлен, то при синхронизации из базы-источника будут выгружаться реквизиты, документы и контрагенты, которые относятся только к указанным вами организациям.
Выгружать согласованные договоры видов. Договоры указанных видов, учет которых ведется в «1С:Документообороте 8», после согласования выгрузятся в «1С:Управление холдингом», где станут договорами контрагентов.
Выгружать согласованные заявки на операции. Предусмотрено пять типов операций:
Выгружать проекты и проектные задачи. Проекты и проектные задачи, учет которых ведется в «1С:Документообороте 8», выгрузятся в «1С:Управление холдингом».
Настройка загружаемых данных
Настройка открывается по гиперссылке Изменить значения автоматического заполнения. В данном окне укажите группы доступа, которые будут автоматически присваиваться корреспондентам, загруженным из другой конфигурации.
Рис. 8. Настройка выгружаемых данных
Настройка имеет смысл для предприятий, использующих ограничение прав доступа. Группа доступа назначается для корреспондентов, созданных в «1С:Управлении холдингом» и загруженных в «1С:Документооборот 8». Без этой настройки пользователи «1С:Документооборота 8» не будут иметь прав на работу с данными корреспондентами.
На этом настройки для конфигурации-источника завершены. Рекомендуем еще раз проверить введенные данные и только после этого нажать Далее.
Рис. 9. Текстовое представление настроек синхронизации базы-источника
Изменение настроек синхронизации
Рис. 10. Параметры настроенной синхронизации
Рис. 11. Изменение настроек синхронизации
Нагрузочное тестирование
Нагрузочное тестирование моделирует работу предприятия без участия реальных пользователей. Такое тестирование проводится для оценки производительности и масштабируемости информационной базы в реальных условиях.
Методика подготовки и проведения нагрузочного тестирования расположена по ссылке: http://kb.1c.ru/articleView.jsp?id=80.
Готовые Обработки для сценариев нагрузочного тестирования
Версии: ПРОФ, КОРП, ДГУ.
В новой версии программы появились внутренние обработки для составления сценариев нагрузочного тестирования после внедрения конфигурации Тест-центр.
Встроенные в «1С:Документооборот 8» обработки – это заранее запрограммированные алгоритмы, эмулирующие реальную работу пользователей. Обработки используются для создания сценариев тестирования.
Речь идет о следующих обработках:
Обработки охватывают 80% ключевых операций:
Рассмотрим подробнее, какие действия и в каком порядке выполняются в каждой обработке.
ТЦ Выполнение задачи из формы «Задачи мне»
Обработка имитирует выполнение задач в списке Задачи мне. Обработка отбирает первые десять задач списка.
При этом выполняются следующие действия:
Далее по тексту длительность паузы указывается в скобках: либо одним числом либо числовым интервалом, из которого выбирается случайное значение длительности паузы.
Для процесса Исполнение:
Для Комплексного процесса:
Для процесса Поручение:
Для процесса Приглашение:
Для процесса Рассмотрение:
Для процесса Регистрация:
Для процесса Решение вопросов выполнения задач:
Для процесса Согласование:
Для процесса Утверждение:
Далее следует переход к выполнению следующей задачи.
ТЦ Создание внутреннего документа
Обработка имитирует создание внутренних документов. Последовательно создается десять документов.
При этом выполняются следующие действия:
Далее следует переход к созданию следующего документа.
ТЦ Создание входящего документа
Обработка имитирует создание входящих документов. Последовательно создается десять документов.
При этом выполняются следующие действия:
Далее следует переход к созданию следующего документа.
ТЦ Создание исходящего документа
Обработка имитирует создание исходящих документов. Последовательно создается десять документов.
При этом выполняются следующие действия:
Далее следует переход к созданию следующего документа.
ТЦ Создание мероприятия
Обработка имитирует создание мероприятий. Создается десять мероприятий.
Обработка используется только в «1С:Документообороте 8» версии КОРП и «1С:Документообороте государственного учреждения 8».
Обработка выполняет следующие действия:
Следующие команды выполняются только для протокольного мероприятия:
После этого формы созданного мероприятия закрываются.
Подготовка информационной базы к тестированию
Для проведения нагрузочного тестирования необходимо предварительно подготовить информационную базу либо использовать копию рабочей информационной базы.
В тестируемой базе должны быть заполнены следующие справочники:
Также должны быть установлены соответствующие этим справочникам настройки программы:
Сравнение результатов нагрузочного тестирования «1С:Документооборота 8» КОРП версий 2.0.4 и 2.0.5
Перед выпуском каждой новой версии «1С:Документооборота 8» проводится регламентированное нагрузочное тестирование. Некоторые результаты данных тестов приведены в таблице.
Ключевая операция | Время выполнения в секундах | |
---|---|---|
2.0.4 | 2.0.5 | |
Внутренние документы Выполнение команды: Записать | 2,047 | 0,850 |
Входящие документы Выполнение команды: Записать | 2,307 | 0,831 |
Исходящие документы Выполнение команды: Записать | 2,256 | 0,907 |
Ознакомление Выполнение команды: Стартовать | 2,511 | 1,008 |
Рассмотрение Выполнение команды: Стартовать | 2,438 | 0,976 |
Прочие изменения
Порядок обновления с предыдущих версий
После обновления с версии 1.4.1 и выше
После обновления на 2.0 для начального заполнения списка Мои документы необходимо запустить обработку ЗаполнениеСпискаМоиДокументы.
Обратите внимание: при большом количестве документов обновление информационной базы на версию 2.0.5 может занять продолжительное время.