Достаточно ли учебника Радченко для создания конфигурации складского учета с нуля и как реализовать тестовое задание?

Программист 1С v8.3 (Управляемые формы) Управленческий учет IT и автоматизация бизнеса
← На главную

При изучении 1С многие начинающие специалисты сталкиваются с классическим тестовым заданием: создать с нуля конфигурацию для учета складских остатков. Основной вопрос заключается в том, хватит ли базовых учебных материалов (например, книги М. Радченко «Практическое пособие разработчика») для успешного выполнения этой задачи. В данной статье мы проанализируем ситуацию, разберем требования к конфигурации и выясним, на какие технические моменты следует обратить особое внимание.

Основные компоненты конфигурации складского учета

Разберем по шагам, что именно требуется реализовать в рамках стандартного теста. Задача делится на два уровня сложности: базовый складской учет и расширенный функционал с расчетом себестоимости и взаиморасчетами.

Для реализации первого пункта нам потребуются следующие объекты метаданных:

  1. Справочники: Номенклатура, Склады. Эти объекты будут выступать в качестве измерений в регистрах.
  2. Документы: ПриходТовара, РасходТовара, ПеремещениеТовара.
  3. Регистр накопления: ОстаткиТоваров (вид регистра — Остатки). В нем мы будем хранить количественные и суммовые показатели в разрезе номенклатуры и складов.

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

Реализация методов списания: По средней и ФИФО

Это один из самых ответственных этапов. Выясним причину, по которой новичкам бывает сложно реализовать ФИФО. Если метод «По средней» требует лишь получения общих итогов по регистру, то ФИФО (First In, First Out) подразумевает учет партий.

Рассмотрим алгоритм реализации «По средней»:

В момент проведения документа РасходТовара мы должны получить текущий остаток суммы и количества. Для этого в запросе используем виртуальную таблицу Остатки регистра накопления.


// Пример получения средней стоимости
Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
|	ОстаткиТоваровОстатки.КоличествоОстаток КАК Количество,
|	ОстаткиТоваровОстатки.СуммаОстаток КАК Сумма
|ИЗ
|	РегистрНакопления.ОстаткиТоваров.Остатки(&МоментВремени, Номенклатура = &Номенклатура) КАК ОстаткиТоваровОстатки";

// Далее рассчитываем: ЦенаСписания = Сумма / Количество

Разберем по шагам реализацию метода ФИФО:

Для работы по ФИФО нам необходимо добавить в регистр накопления новое измерение — Партия (тип: ДокументСсылка.ПриходТовара). При проведении расхода нам нужно выбрать все остатки по данной номенклатуре, отсортировав их по времени поступления партий.

  1. Создадим запрос к таблице остатков с разрезом по партиям.
  2. Установим сортировку по Партия.МоментВремени (Возраст).
  3. В цикле будем обходить выборку, списывая количество из каждой партии, пока не покроем весь объем в документе.

Использование управляемых блокировок

Требование использовать управляемые блокировки в тестовом задании указывает на то, что работодатель проверяет ваши знания в области многопользовательской работы. В управляемом режиме платформа 1С не блокирует таблицы целиком на уровне СУБД, а позволяет разработчику явно указать, какие данные должны быть защищены от изменения в текущей транзакции.

Проанализируем ситуацию: если два пользователя одновременно проводят расход одного и того же товара, программа должна заблокировать этот товар (комбинацию Номенклатура + Склад) до завершения первой транзакции. Для этого используется объект БлокировкаДанных.


Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиТоваров");
ЭлементБлокировки.УстановитьЗначение("Номенклатура", ТекСтрока.Номенклатура);
ЭлементБлокировки.УстановитьЗначение("Склад", Склад);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();

Важный момент: блокировка должна устанавливаться ПЕРЕД выполнением запроса на получение остатков. Это гарантирует, что данные не изменятся в промежутке между чтением остатка и записью нового движения.

Построение отчетов на Системе компоновки данных (СКД)

В пункте 2 задания указано требование использовать компоновку данных и дать пользователю возможность изменения настроек. Рассмотрим, как это сделать правильно.

Создавая отчеты «Обороты по складам» или «Остатки по взаиморасчетам», не стоит ограничиваться простым выводом полей. Для полноценного выполнения задания проанализируем следующие настройки СКД:

Контроль отрицательных остатков

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

Рекомендуется использовать следующую логику в процедуре ОбработкаПроведения:

  1. Записываем «пустые» движения документа (очищаем старые записи, если документ перепроводится).
  2. Устанавливаем управляемую блокировку на данные.
  3. Выполняем запрос к остаткам.
  4. Сравниваем остаток с требуемым количеством в документе.
  5. Если товара не хватает, вызываем Отказ = Истина и выводим сообщение пользователю.

Взаиморасчеты и денежные средства

Для учета взаиморасчетов с контрагентами (Пункт 2 теста) нам потребуется еще один регистр накопления — Взаиморасчеты. Принцип работы аналогичен складскому учету, но измерениями будут выступать Контрагент и, желательно, Договор.

Посмотрим на пример логики документов оплаты:

Итоги: Хватит ли Радченко?

Подводя итог, можно сказать: учебник Радченко дает отличный фундамент и покрывает около 80% задач из данного теста (создание справочников, документов, регистров и простых отчетов). Однако оставшиеся 20% — управляемые блокировки, специфика ФИФО и тонкая настройка СКД — потребуют обращения к дополнительным источникам, таким как документация на ИТС или специализированные курсы по оперативному учету (например, курсы Павла Чистова).

Для успешной сдачи теста мы рекомендуем сначала полностью пройти пример из книги Радченко, а затем отдельно изучить механизм БлокировкаДанных и принципы партионного учета. Это позволит не просто «создать конфигурацию», а сделать ее профессиональной и устойчивой к нагрузкам.

← На главную