Перейти к основному содержимому

1С — итоги

Разработчику Аналитику Тестировщику Архитектору Инженеру

Кратко — что стоит унести из раздела "1С". Если пункт кажется туманным — откройте указанную главу или оглавление.


FAQ — Часто задаваемые вопросы

Типичные сбои и ситуации после раздела, плюс запросы из поиска ("язык запросов 1С", "проведение документа", "тонкий клиент"). Здесь — краткий ответ и ссылка на главу; определения для зачёта — в чек-листе.

Вопрос. Не подключается информационная база — "версия платформы" или "база открыта другим пользователем".

Ответ. Сверьте версию платформы с требованиями конфигурации; для файловой базы на сетевом диске закройте зависшие сеансы в администрировании кластера. Файл .1CD не держите открытым копией в проводнике. Подробнее здесь — первая программа, платформа, БД.

Вопрос. Путаю "конфигурацию", "информационную базу" и "установку 1С".

Ответ. Платформа — движок; конфигурация — прикладное решение (метаданные и код); ИБ — ваши данные и копия конфигурации в работе. Обновляют отдельно платформу и конфигурацию. Подробнее здесь — платформа, архитектура.

Вопрос. После обновления конфигурации просят "обновить базу данных" — можно нажать "нет"?

Ответ. Без обновления структуры ИБ новые реквизиты и объекты не появятся в данных; отказ приведёт к ошибкам при открытии форм и проведении. На проде — резервная копия и окно обслуживания. Подробнее здесь — архитектура, практикум.

Вопрос. Толстый, тонкий клиент, веб-клиент — какой выбрать новичку?

Ответ. Для учёбы и разработки чаще толстый клиент + конфигуратор; тонкий и веб — для пользователей без полного конфигуратора на ПК. Код сервера выполняется на сервере 1С, на клиенте — клиентские модули. Подробнее здесь — платформа, управляемые формы.

Вопрос. Код из статьи с Справочники.Номенклатура не компилируется — "объект не найден".

Ответ. Имена метаданных зависят от конфигурации. В учебной базе мини-склад свои имена; в типовой УТ — другие. Подставьте объекты своей конфигурации. Подробнее здесь — оглавление, практикум.

Вопрос. Документ записал, но остатки на складе не изменились.

Ответ. Проверьте проведение документа и движения по регистрам накопления. Непроведённый документ часто не формирует движений. Подробнее здесь — регистры, архитектура, практикум.

Вопрос. В отчёте пусто, хотя документы в журнале есть.

Ответ. Смотрите период отбора, организацию, проведение и регистр, из которого строится отчёт. Несовпадение измерений (склад, номенклатура) даёт нулевой результат. Подробнее здесь — печать и отчёты, запросы.

Вопрос. Когда писать запрос, а когда обход Выбрать() в цикле?

Ответ. Для отборов, соединений и итогов по большим объёмам — язык запросов; для единичных объектов по ссылке — объектная модель. Цикл с запросом на каждую строку (N+1) тормозит. Подробнее здесь — запросы, выборки объектов.

Вопрос. Остатки() и СрезПоследних() дают разные цифры — что верить?

Ответ. Это разные виртуальные таблицы регистров; сверьте период, измерения и момент времени. Ошибка часто в границе даты (&Дата включительно/исключительно). Подробнее здесь — регистры, запросы.

Вопрос. Точка останова не срабатывает — отладчик "проскакивает" код.

Ответ. Убедитесь, что отладка подключена к нужному сеансу (клиент/сервер, фоновое задание), модуль сохранён, конфигурация обновлена в ИБ. Серверный код не ловится клиентской отладкой без серверного контекста. Подробнее здесь — ошибки и отладка.

Вопрос. EDT и конфигуратор — проект не совпадает с базой на сервере.

Ответ. Сверьте выгрузку/загрузку конфигурации, хранилище и версию ветки. Рабочая ИБ на сервере может отставать от Git. Подробнее здесь — экосистема, архитектура.

Вопрос. "Недостаточно прав" при записи справочника под своим логином.

Ответ. Проверьте роли пользователя, RLS (ограничение на уровне записей), режим привилегированного модуля (не как костыль для обычного кода). Подробнее здесь — архитектура, платформа.

Вопрос. Табличная часть в форме заполнена, после записи пустая.

Ответ. Данные могли остаться в форме, а объект не записан; проверьте Записать() в модуле объекта, обработчики ПередЗаписью, отказ от записи. Подробнее здесь — таблицы, формы.

Вопрос. Печатная форма выводит пустые поля — в документе значения есть.

Ответ. Имена областей макета и параметров должны совпадать с кодом вывода; проверьте макет и цикл по табличной части. Подробнее здесь — печать и отчёты.

Вопрос. HTTP-сервис возвращает 404 — опубликовали в Apache/IIS?

Ответ. Публикация на веб-сервере, корневой URL, имя HTTP-сервиса в метаданных и шаблон URL должны совпасть. Проверьте сеанс и аутентификацию. Подробнее здесь — HTTP-сервисы, интеграция.

Вопрос. Вызов внешнего API из 1С — кириллица в JSON "ломается".

Ответ. Явно задайте UTF-8 при чтении/записи тела, проверьте ЗаписьJSON / ЧтениеJSON. Подробнее здесь — JSON, HTTP-запросы.

Вопрос. PostgreSQL для 1С — ставлю "обычный" Postgres с сайта postgres.org?

Ответ. Для production нужна сборка с учётом требований 1С (дистрибутив 1С или Postgres Pro с патчами). Плюс настройка postgresql.conf и роли без суперпользователя. Подробнее здесь — БД, PostgreSQL и 1С.

Вопрос. Фоновое задание в журнале "завершено с ошибкой", в интерактиве всё работает.

Ответ. У фонового задания другой контекст прав, нет клиентского UI, иной порядок блокировок. Смотрите технологический журнал и стек в ЖР регистрации. Подробнее здесь — ошибки, интеграция.

Вопрос. Обмен РИБ — "конфликт версий" или дубли документов.

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

Вопрос. Значение не может быть присвоено при присваивании в переменную.

Ответ. Чаще несовместимые типы (строка в число, ссылка и строка UUID). Используйте приведение, XMLСтрока/ЗначениеВСтрокуВнутр осознанно. Подробнее здесь — типы, синтаксис.

Вопрос. Комментарий в коде "не работает" — скопировал с //, а конфигуратор ругается.

Ответ. В BSL комментарий — одинарная кавычка в начале строки (или блок /* */). // в старых материалах может не поддерживаться в вашей версии. Подробнее здесь — синтаксис.

Вопрос. Внешняя обработка работает у разработчика, у пользователя "макрос заблокирован".

Ответ. Подключите обработку через безопасное хранилище / поставку в конфигурацию, подпишите доверенным сертификатом, выдайте права на открытие внешних файлов по политике организации. Подробнее здесь — первая программа, экосистема.

Вопрос. COM-соединение с 1С из Excel: "invalid class string".

Ответ. Разрядность 32/64 bit Office и платформы должна совпадать; используйте правильный ProgID и строку подключения к ИБ. Подробнее здесь — Automation, интеграция.

Вопрос. На тестовой базе всё быстро, на копии продакшена отчёт идёт часами.

Ответ. Объём данных другой; нужны индексы, корректный запрос вместо цикла, временные таблицы, ограничение полей. Снимите план запроса СУБД. Подробнее здесь — запросы, регистры.

Вопрос. Лицензия "нет свободных лицензий" при одном пользователе.

Ответ. Зависшие сеансы на сервере 1С, лицензия на сервере vs клиентская, сетевой ключ HASP. Администрирование кластера — завершить старые сеансы. Подробнее здесь — экосистема, платформа.

Вопрос. После курса хочу идти в интеграции — с OData, HTTP или обменом файлами?

Ответ. Начните с хаба интеграции: для чтения данных наружу — OData; для своих API — HTTP-сервисы; для обмена с филиалами — планы обмена. Сначала закрепите запросы и JSON.

Вопрос. При записи документа сообщение "объект заблокирован другим пользователем".

Ответ. Другой сеанс держит блокировку (интерактивное редактирование, зависшее задание). Найдите сеанс в администрировании, дождитесь завершения или снимите блокировку по регламенту, не обходите через отключение управляемых блокировок без анализа. Подробнее здесь — архитектура, ошибки.

Вопрос. С чего начать программирование 1С — конфигуратор или EDT?

Ответ. Новичку проще конфигуратор + учебная база (первая программа, мини-склад); EDT — для командной разработки и Git. Подробнее здесь — оглавление, экосистема.

Вопрос. Встроенный язык 1С — это отдельный язык или "диалект"?

Ответ. Это встроенный язык (BSL) платформы 1С:Предприятие: русские ключевые слова, объекты метаданных, клиент-сервер. Подробнее здесь — синтаксис, платформа.

Вопрос. Язык запросов 1С — чем отличается от SQL?

Ответ. Синтаксис похож на SQL, но работает с метаданными и виртуальными таблицами регистров (Остатки, СрезПоследних). Подробнее здесь — запросы, регистры.

Вопрос. Что такое проведение документа в 1С?

Ответ. Проведение фиксирует учётные движения (часто по регистрам) и делает документ "действующим" для отчётов. Без проведения остатки могут не измениться. Подробнее здесь — архитектура, регистры.

Вопрос. Регистр накопления 1С — зачем нужен и чем от справочника?

Ответ. Регистр хранит движения и остатки/обороты; справочник — стабильные сущности (номенклатура, контрагенты). Подробнее здесь — регистры, архитектура.

Вопрос. Тонкий клиент 1С — что это и когда ставить пользователям?

Ответ. Тонкий клиент подключается к серверу 1С, без полного конфигуратора на ПК; подходит для рабочих мест бухгалтерии и склада. Подробнее здесь — платформа, формы.

Вопрос. Как обновить конфигурацию 1С без потери данных?

Ответ. Резервная копия ИБ, загрузка CF/CFE, обновление конфигурации БД, тест на копии. Подробнее здесь — архитектура, практикум.

Вопрос. Внешняя обработка 1С — как создать и подключить?

Ответ. Файл .epf, разработка в конфигураторе, открытие через "Файл" или встроенное меню; права и безопасность — у администратора. Подробнее здесь — первая программа.

Вопрос. Отчёт 1С — СКД или запрос в коде?

Ответ. Типовые отчёты — схема компоновки данных и макеты; сложная аналитика — запрос + печать и отчёты. Подробнее здесь — запросы, печать.

Вопрос. Управляемые формы 1С — чем от обычных?

Ответ. Управляемые — основной UI в 8.3 (команды, данные формы, клиент-сервер); логика в модуле формы и объекта. Подробнее здесь — управляемые формы.

Вопрос. HTTP-сервис 1С — как опубликовать REST API?

Ответ. Объект метаданных HTTP-сервис, шаблон URL, публикация на веб-сервере, модуль обработки запроса. Подробнее здесь — HTTP-сервисы, интеграция.

Вопрос. OData 1С — как отдать данные во внешнюю систему?

Ответ. Публикация стандартного интерфейса OData, настройка прав и состава объектов. Подробнее здесь — OData, интеграция.

Вопрос. Обмен данными между базами 1С — универсальный обмен или РИБ?

Ответ. РИБ — распределённые базы филиалов; универсальный обмен — разовые правила между разными конфигурациями. Подробнее здесь — планы обмена, Универсальный обмен, интеграция.

Вопрос. 1С и PostgreSQL — можно ли вместо MS SQL?

Ответ. Да, для серверной ИБ — PostgreSQL с патчами 1С или Postgres Pro; настройка ролей и postgresql.conf. Подробнее здесь — БД, PostgreSQL и 1С.

Вопрос. Файловая база 1С или серверная — что выбрать на старте?

Ответ. Файловая — учёба и малый офис; серверная — много пользователей и надёжность. Подробнее здесь — платформа, БД.

Вопрос. Таблица значений 1С — зачем, если есть запрос?

Ответ. Таблица значений — in-memory таблица для обработок, обмена и UI без записи в БД; запрос — чтение из ИБ. Подробнее здесь — таблицы, коллекции.

Вопрос. Виртуальная таблица остатков в запросе 1С — как написать?

Ответ. В запросе к регистру накопления — РегистрНакопления.Имя.Остатки(, ) с параметрами периода и отборов. Подробнее здесь — регистры, запросы.

Вопрос. Процедура и функция 1С — в чём разница?

Ответ. Функция возвращает значение через Возврат; процедура — для действий без результата (или через параметры по ссылке). Подробнее здесь — процедуры и функции.

Вопрос. Справочник и документ 1С — когда что создавать?

Ответ. Справочник — долгоживущие объекты; документ — события во времени с проведением. Подробнее здесь — архитектура, практикум.

Вопрос. JSON в 1С 8.3 — как прочитать ответ API?

Ответ. ЧтениеJSON / ЗаписьJSON или преобразование в структуру/соответствие — см. JSON и HTTP-запросы.

Вопрос. Web-сервис SOAP в 1С — ещё актуален?

Ответ. В старых интеграциях — да; для новых API чаще HTTP и JSON. Подробнее здесь — Web-сервисы, интеграция.

Вопрос. 1С программист — какие навыки нужны работодателю?

Ответ. Платформа, запросы, метаданные, типовые конфигурации, интеграция, основы SQL и клиент-сервер; soft skills — общение с заказчиком. Подробнее здесь — карьера в IT, экосистема.

Вопрос. 1С:Бухгалтерия — можно ли доработать под себя?

Ответ. Через расширения конфигурации и внешние отчёты/обработки без снятия с поддержки (по правилам 1С). Подробнее здесь — архитектура, экосистема.

Вопрос. 1С:Предприятие 8.3 — чем отличается от 7.7?

Ответ. 8.3 — управляемые формы, серверная платформа, современные интеграции; 7.7 — устаревшая линейка для миграции legacy. Подробнее здесь — история, платформа.

Вопрос. Выборка Выбрать() и запрос — когда быстрее?

Ответ. На больших данных — запрос; Выбрать() — точечный обход ссылок, не цикл с запросом на каждую строку. Подробнее здесь — выборки объектов, запросы.

Вопрос. Конфигуратор не запускается — "нет лицензии" или версия не совпадает?

Ответ. Сверьте версию платформы с требованием базы, менеджер лицензий HASP/сетевой ключ, права пользователя. Подробнее здесь — первая программа, экосистема.


Что запомнить

1С:Предприятие — платформа учётных приложений: метаданные (объекты конфигурации), встроенный язык (BSL), СУБД и клиентские приложения. Разработчик работает на стыке предметной области (склад, зарплата, CRM) и техники (запросы, регистры, интеграция).

Опоры раздела:

  • Платформа / конфигурация / ИБ — три разных слоя обновлений и развёртывания;
  • Объекты метаданных — справочники, документы, регистры; проведение и движения;
  • Запросы — основной инструмент отчётов и тяжёлых отборов;
  • Формы и макеты — UI и печать, имена областей должны совпадать;
  • Интеграция — HTTP, JSON, OData, обмен; кодировка и права на сервере.

Три привычки:

  1. Любой пример из статьи переносить на свою конфигурацию или мини-склад.
  2. Перед отладкой "на проде" — копия ИБ и журнал регистрации.
  3. Медленный код сначала смотреть в запросе и регистрах, не добавлять "ещё один цикл".

Куда идти дальше

ТемаРаздел
SQL и СУБДУправление СУБД
Интеграции (общее)Основы интеграционного взаимодействия
ERP-внедрениеВнедрение ERP

Проверьте себя: Чек-лист самопроверки.


См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").