Прохождение онлайн-тестирования для 1С-программиста
Ключевые тезисы
- Тестирование состояло из 20 вопросов с голосовыми ответами.
- Вопросы охватывали ключевые аспекты платформы 1С: запросы, архитектуру, механизмы и объекты конфигурации.
- Формат позволяет предварительно оценить знания кандидата перед полноценным собеседованием.
Работа с внешними источниками данных
Для связи с внешними базами данных (например, SQL) используется специальный объект конфигурации — внешние источники данных. Через него нельзя делать соединение данных текущей базы с данными другой СУБД.
Оптимизация запросов
- Избегать: соединения с подзапросами и виртуальными таблицами в условии
WHERE. - Использовать параметры виртуальных таблиц (срабатывают раньше) вместо условий в
WHERE, особенно при отборе по измерениям. - Индексы: индексировать правую таблицу при соединении временных таблиц. Индексация рекомендуется от ~1000 записей, но нужно смотреть по ситуации.
- Оператор
ПОДОБНО: не ставить знак%в начале шаблона, чтобы не замедлять запрос. - Составной тип данных: использовать оператор
ВЫРАЗИТЬдля явного указания типа, чтобы избежать неявных левых соединений. - Поля в
WHERE: не делать вычисляемыми поле, по которому идёт отбор. - Параметры ВТ: не "проваливаться" через точку к реквизиту измерения (например,
Организация.ИНН), иначе индекс не будет использоваться. - Запрос в цикле: избегать.
- Явные соединения: явно указывать таблицы и поля для соединения в запросе, а не обращаться через точку.
- Временные таблицы: уничтожать (
Уничтожить) при большом количестве, чтобы освободить память. ОБЪЕДИНИТЬ ВСЕ: использовать вместоОБЪЕДИНИТЬ, чтобы избежать лишней группировки (актуально для распределённых баз).
Виртуальные таблицы (ВТ)
Виртуальные таблицы — это готовые, сгруппированные данные (вложенный запрос), позволяющие быстро получать агрегированные результаты.
- Примеры:
СрезПервых,СрезПоследних(регистр сведений),Обороты,Остатки(регистр накопления). - Параметры ВТ срабатывают быстрее, чем условия в
WHERE. - Для регистров накопления эффективно использовать таблицу итогов
Остатки, а неОбороты(последняя — физическая таблица).
Управляемые и неуправляемые формы
- Управляемые формы: используют клиент-серверную архитектуру (логика разделена между клиентом и сервером). Пользователь может гибко настраивать форму.
- Неуправляемые формы: код пишется в одном месте, без разделения на клиент и сервер.
- В режиме совместимости можно использовать обе формы в одной конфигурации.
Роли и права
- Создаётся роль.
- Роли назначаются права на объекты (чтение, запись, проведение и т.д.).
- Роль назначается конкретному пользователю (обязательно сохранить).
- В типовых конфигурациях используется подсистема управления доступом (УДА), позволяющая гибко настраивать права вплоть до конкретных записей.
- Принцип работы: если право разрешено в одной роли, оно доступно пользователю, даже если в другой роле оно не указано (разрешающая логика).
План обмена
План обмена — механизм для организации обмена данными между базами (распределёнными ИБ).
- Регистрация изменений фиксирует изменения объектов.
- Обмен может происходить через файл или прямое подключение.
- Регистрация может быть автоматической или программной (ручной).
Тестирование конфигурации
- Пользовательское тестирование: интерактивная проверка.
- Сценарное тестирование: указание последовательности действий.
- Юнит-тестирование через макеты: в макет записываются тестируемые поля и ожидаемые результаты, после чего код прогоняется.
Механизм событий
События позволяют выполнять код в определённые моменты:
- В модуле приложения:
ПередНачаломРаботыСистемы,ПриНачалеРаботыСистемыи т.д. - В модуле управляемой формы:
ПриСозданииНаСервере,ПриОткрытиии др. - В модуле объекта: транзакционные события (
ПередЗаписью,ПриЗаписи), обработка проведения, проверки заполнения. - В модуле менеджера: события для работы с классом в целом (например,
Печать).
Временные таблицы
Используются для промежуточного хранения и обработки данных внутри запроса.
- Позволяют собирать, группировать данные и затем использовать их в соединениях или отборах.
- Индексация: рекомендуется индексировать поля, используемые для соединений или отборов.
- Передаются в запрос через параметр как таблица значений с типизированными колонками.
Обновление конфигурации
- Автоматическое: через пользовательский режим для типовых конфигураций (требует файла обновления
CFU). - Рекомендации: не пропускать релизы, после обновления дождаться завершения обработчиков в пользовательском режиме или регламентных заданий.
- Для нетиповых конфигураций: разработчик вручную сравнивает и переносит изменения через сравнение/объединение в конфигураторе.
- Расширения: рекомендуется использовать для более плавного процесса обновления.
Блокировки
- Транзакционные (на уровне СУБД):
- Управляемые (блокируют на чтение и изменение).
- Разделяемые (блокируют только на чтение).
- Объектные (на уровне платформы 1С):
- Оптимистические — основаны на контроле версии записи (при конфликте — ошибка).
- Пессимистические — явно устанавливаются разработчиком методом
Заблокировать()на объект.
- Назначение: организация согласованного параллельного доступа, предотвращение конфликтов (например, двойной продажи одного товара).
Система компоновки данных (СКД)
СКД — механизм платформы для гибкого построения отчётов.
- Позволяет настраивать отчёты интерактивно, без программирования.
- Источники данных: запросы, объекты данных, таблицы значений.
- Возможности: вычисляемые поля, группировки, условное оформление, собственные макеты, объединение источников данных, вложенные схемы.
Метаданные
Метаданные — это объекты конфигурации и их структура (реквизиты, табличные части и т.д.).
- Позволяют программно получать информацию об объектах (например, количество реквизитов, имя объекта).
Общие модули
Предназначены для хранения повторно используемого кода (экспортных процедур и функций).
- Виды: клиентские, серверные, серверные с флагом «Вызов сервера» (можно вызывать с клиента), с внешним соединением, привилегированные (отключают контроль прав).
- Повторное использование: модули с этим флагом кэшируются. Для вызова процедуры внутри такого модуля нужно указывать имя модуля (например,
ОбщийМодуль.Процедура()).
Транзакции
Транзакция — это атомарная последовательность действий, которая либо выполняется целиком, либо откатывается.
- Порядок:
НачатьТранзакцию()→ попытка выполнения действий →ЗафиксироватьТранзакцию()/ в случае исключения →ОтменитьТранзакцию(). - Назначение: обеспечение целостности данных (консистентности).
Регистры сведений
- Похожи на справочник, но хранят записи, а не объекты.
- Виртуальные таблицы:
СрезПервых,СрезПоследних(позволяют быстро получить актуальные данные на период или на текущий момент). - Физическая таблица содержит все несгруппированные записи.
- Измерения контролируют уникальность записей и индексируются.
- Периодичность: могут быть периодическими (с периодом: секунда, день, месяц) или подчинёнными регистратору.
- Ресурсы могут быть любого типа данных.
Реквизиты и табличные части
- Реквизиты объекта — это поля объекта (например, код, наименование). Бывают стандартные (от платформы) и созданные разработчиком. Могут индексироваться.
- Табличные части — отдельные сущности в базе данных, связанные с основным объектом по ссылке. В запросах к ним можно обращаться как к отдельным таблицам.
Выводы
Онлайн-тестирование с голосовыми ответами проверяет практическое понимание ключевых механизмов платформы 1С: от написания оптимизированных запросов и работы с объектами до архитектурных вопросов (СКД, транзакции, блокировки). Такой формат может быть эффективным инструментом для первичного отсева кандидатов.