Сквозной пример задачи оперативного учета (ОУ) при подготовке к экзамену "1С:Специалист" по платформе

Публикация № 1341878 10.12.20

Разработка - Подготовка к аттестации

Новая методика контроля остатков старая работа с планов видов характеристик заголовок отчёта в СКД оперативный учет

Разберём на примере некоторые обобщённые вопросы по задачам оперативного учёта при подготовке к экзамену "Специалист" по платформе (две методики контроля отрицательных остатков), работа с планов видов характеристик и создание требуемого на экзамене заголовка вида отчета в СКД.

Итак, есть некая торговая компания. Для учёта поступления товаров нужен документ "Приходная накладная", для продажи – "Расходная накладная". Помимо продажи могут оказываться услуги. И товары, и услуги указываются в одной табличной части. Складской учёт не ведётся. При проведении расходной нужно анализировать остатки и при нехватке товара не позволять проводить документ с выводом предупреждения.

Списание себестоимости нужно организовать по партиям в зависимости от принятого в учётной политике текущего метода списания (FIFO или LIFO). Учётная политика действует год.

Необходимо построить следующие отчёты "Продажи" и "Остатки товаров". Дополнительная информация в отчёте "Остатки товаров" должна быть детализирована по производителям. Данный механизм должен быть реализован с помощью плана видов характеристик. Сами характеристики в настройках отчёта должны быть отображены как реквизиты номенклатуры.

Продажи с 01.01.2010 по 31.03.2010

Номенклатура

Производитель

Кол-во

Себест-сть

Продажа

Прибыль

Куртка замшевая

ОАО "Текстиль"

3

300

620

320

Портсигар

ОАО "Л-Тек"

3

30

50

20

Доставка

 

1

 

100

100

Прибыль = Сумма продаж - Себестоимость

Остатки товаров на 01.01.2010

Номенклатура

Партия

Кол-во

Стоимость

Куртка замшевая

 

4

350

 

Прих. накладная № 1

2

250

 

Прих. накладная № 2

2

100

Портсигар

 

6

65

 

Прих. накладная № 1

5

50

 

Прих. накладная № 3

1

15

 

Проектирование регистров

С этого пункта стоит начать решение всех задач. Здесь в первую очередь следует взглянуть на отчёты. Анализируя отчёты, можно определить большинство необходимых детализирующих признаков (реквизитов) и накапливаемых показателей (ресурсов). Но структуру регистров зачастую определяют не только отчёты, поэтому крайне важно внимательно прочитать условие задачи (типичный пример – в отчёте остатки номенклатуры выводятся без учёта склада, а хранить номенклатуру по заданию нужно в разрезе складов).

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

  • регистр сведений "Учётная политика" – периодичность "Год", ресурс "Метод списания"; режим записи "Независимый" (создан новый);
  • регистр накопления (остатки) "Остатки номенклатуры" – измерения "Номенклатура", "Партия"; ресурсы "Количество", "Сумма" (изменён существующий);
  • регистр накопления (обороты) "Продажи" – измерение "Номенклатура"; ресурсы "Количество", "Сумма" (создан новый).

 

Хранение учётной политики для определения метода списания.

Здесь никаких сюрпризов – есть соответствующий регистр сведений, в нем и храним. Работа с получением и использованием метода списания будет описана ниже.

 

Проведение документов – новый подход vs старая методика

Если у документа "Приходная накладная" нету особых требований к проведению (в рамках экзамена), то в "Расходной накладной" нужно по возможности показать владение двумя методиками контроля отрицательных остатков – новой и традиционной. Сделано это для того, чтобы проверить экзаменуемого на понимание принципов работы управляемых блокировок.

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

- на основании данных документа и других объектов конфигурации, за исключением данных самого регистра – используется новая методика;

- необходимо использовать данные регистра – работаем с традиционной методикой.

Итак, рассмотрим обе методики и на примере документа "Расходная накладная" изучим необходимый минимум работы с управляемыми блокировками для решения экзаменационных задач.

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

 

Новая схема контроля отрицательных остатков.

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

Разберём новую методику контроля отрицательных остатков и установку блокировок при использовании данной методики.

  1. Для начала получаем сгруппированную табличную часть документа и формируем движения по регистру "Остатки номенклатуры".
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|   РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
|   СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество
|ИЗ
|   Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
|   РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
|   И РасходнаяНакладнаяСписокНоменклатуры.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры
|
|СГРУППИРОВАТЬ ПО
|   РасходнаяНакладнаяСписокНоменклатуры.Номенклатура";

Запрос.УстановитьПараметр("ВидНоменклатуры", Перечисления.ВидыНоменклатуры.Товар);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();

Выборка = РезультатЗапроса.Выбрать();

Пока Выборка.Следующий() Цикл
    // регистр ОстаткиНоменклатуры Расход
    Движение = Движения.ОстаткиНоменклатуры.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
    Движение.Период = Дата;
    Движение.Склад = Склад;
    Движение.Номенклатура = Выборка.Номенклатура;
    Движение.Количество = Выборка.Количество;
КонецЦикла;

 

  1. Устанавливаем блокировку и записываем движения в регистр:
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
Движения.ОстаткиНоменклатуры.Записать();

Одним из преимуществ нового подхода к контролю остатков является то, что для блокировки разделяемых ресурсов вместо использования специального объекта БлокировкаДаных нужно просто установить у набора записей регистра свойство БлокироватьДляИзменения.

  1. После записи движений получаем остатки. При чтении получим из регистра данные с учётом движений самого документа. Если выборка не пустая (т.е. имеем отрицательные остатки) – извещаем пользователя и не позволяем проводить документ.
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |   ОстаткиНоменклатурыОстатки.Номенклатура,
    |   ОстаткиНоменклатурыОстатки.КоличествоОстаток,
    |   ОстаткиНоменклатурыОстатки.Номенклатура.Представление
    |ИЗ
    |   РегистрНакопления.ОстаткиНоменклатуры.Остатки(
    |           &Граница,
    |           Номенклатура В (&СписокТоваров)
    |               И Склад = &Склад) КАК ОстаткиНоменклатурыОстатки
    |ГДЕ
    |   ОстаткиНоменклатурыОстатки.КоличествоОстаток < 0";   

Запрос.УстановитьПараметр("Граница", Новый Граница(МоментВремени()));
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.УстановитьПараметр("СписокТоваров", СписокНоменклатуры.ВыгрузитьКолонку("Номенклатура"));

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();

Пока Выборка.Следующий() Цикл
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "По номенклатуре " + Выборка.НоменклатураПредставление +
        " не хватает товара в количестве: " + -Выборка.КоличествоОстаток;
    Сообщение.Сообщить();   

    Отказ = Истина;
КонецЦикла;

Новый подход к проведению направлен на уменьшение времени установки транзакционных блокировок и прекрасно работает, если данные для расчёта себестоимости находятся в разных регистрах. В обратном случае приходится использовать традиционную методику контроля остатков.

 

Традиционная схема контроля отрицательных остатков.

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

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

Но на экзамене, чтобы не терять время и не усложнять себе работу, можно обойтись одним запросом.

Тогда алгоритм проведения документа "Расходная накладная" будет выглядеть так:

  1. Устанавливаем флаг для записи движений в конце транзакции и очищаем движения документа с помощью записи пустого набора:
Движения.ОстаткиНоменклатуры.Записывать = Истина;
Движения.ОстаткиНоменклатуры.Записать();
  1. До получения остатков накладываем блокировку на пересекающийся набор номенклатуры:
// УСТАНАВЛИВАЕМ БЛОКИРОВКУ ДАННЫХ РЕГИСТРА
Блокировка = Новый БлокировкаДанных;
// Определеяем регистр, данные которого будем блокировать
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
// Для экзамена режим блокировки данных всегда исключительный
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;  

// Делаем запросом выборку из таблицы СписокНоменклатуры для выбора значений блокировки
Запрос = Новый Запрос;
Запрос.Текст =
   "ВЫБРАТЬ РАЗЛИЧНЫЕ
   |   РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура
   |ИЗ
   |   Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
   |ГДЕ
   |   РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", Ссылка);

ТаблицаНоменклатуры = Запрос.Выполнить().Выгрузить();

// Источник данных для блокировки – полученная из запроса ТЗ ТаблицаНоменклатуры
ЭлементБлокировки.ИсточникДанных = ТаблицаНоменклатуры;

// Первый параметр – поле блокировки в регистре, второй – поле источника данных блокировки (ТаблицаНоменклатуры.Номенклатура)
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");

Блокировка.Заблокировать();

 

  1. Выполняем основной программный код для получения остатков:
    1. Получаем действующую на момент проведения учётную политику
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |   УчетнаяПолитикаСрезПоследних.МетодСписания КАК МетодСписания
    |ИЗ
    |   РегистрСведений.УчетнаяПолитика.СрезПоследних(&Дата, ) КАК УчетнаяПолитикаСрезПоследних";
Запрос.УстановитьПараметр("Дата", Дата);

РезультатЗапроса = Запрос.Выполнить();
ВыборкаУчетнаяПолитика = РезультатЗапроса.Выбрать();


Если ВыборкаУчетнаяПолитика.Следующий() Тогда
    МетодСписания = ВыборкаУчетнаяПолитика.МетодСписания;
Иначе
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Не задана учетная политика. Документ не может быть проведен.";
    Сообщение.Сообщить();   

    Возврат;
КонецЕсли;

 

    1. Получаем остатки. Обратите внимание, что для последующего вывода сообщения о нехватке товара необходимо в запросе извлечь представление номенклатуры (ДокТЧ.Номенклатура.Представление КАК НоменклатураПредставление) и в дальнейшем использовать именно его. Связано это с тем, что "Номенклатура" является полем ссылочного типа и в случае его использования при выводе сообщения система будет строить подзапрос для извлечения собственно наименования, что создаст дополнительную нагрузку и как следствие существенное замедление работы. По этой причине неверное его использование является на экзамене грубой ошибкой.
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |   РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
    |   СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК КоличествоВДокументе,
    |   СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК СуммаВДокументе
    |ПОМЕСТИТЬ ДокТЧ
    |ИЗ
    |   Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
    |ГДЕ
    |   РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    |   РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
    |
    |ИНДЕКСИРОВАТЬ ПО
    |   Номенклатура
    |;
    |
    |/////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |   ДокТЧ.Номенклатура КАК Номенклатура,
    |   ДокТЧ.КоличествоВДокументе КАК КоличествоВДокументе,
    |   ОстаткиНоменклатурыОстатки.Партия КАК Партия,
    |   ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток,
    |   ОстаткиНоменклатурыОстатки.СуммаОстаток КАК СуммаОстаток,
    |   ДокТЧ.СуммаВДокументе КАК СуммаВДокументе,
    |   ДокТЧ.Номенклатура.Представление КАК НоменклатураПредставление,
    |   ДокТЧ.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры
    |ИЗ
    |   ДокТЧ КАК ДокТЧ
    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
    |               &МоментВремени,
    |               Номенклатура В
    |                   (ВЫБРАТЬ
    |                       ДокТЧ.Номенклатура КАК Номенклатура
    |                   ИЗ
    |                       ДокТЧ КАК ДокТЧ)) КАК ОстаткиНоменклатурыОстатки
    |       ПО ДокТЧ.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
    |
    |УПОРЯДОЧИТЬ ПО
    |   ОстаткиНоменклатурыОстатки.Партия.МоментВремени УБЫВ
    |ИТОГИ
    |   МИНИМУМ(КоличествоВДокументе),
    |   СУММА(КоличествоОстаток),
    |   СУММА(СуммаОстаток),
    |   МИНИМУМ(СуммаВДокументе)
    |ПО
    |   Номенклатура";

Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("Ссылка", Ссылка);

Если МетодСписания = Перечисления.УчетнаяПолитика.ФИФО Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст,     "ОстаткиНоменклатурыОстатки.Партия.МоментВремени УБЫВ", "ОстаткиНоменклатурыОстатки.Партия.МоментВремени ВОЗР");
КонецЕсли;   

РезультатЗапроса = Запрос.Выполнить();

ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

 

    1. Обходим результат запроса
Пока ВыборкаНоменклатура.Следующий() Цикл
Если ВыборкаНоменклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Товар Тогда       

Если ВыборкаНоменклатура.КоличествоВДокументе > ВыборкаНоменклатура.КоличествоОстаток Тогда
            Сообщение = Новый СообщениеПользователю;
            Сообщение.Текст = "Недостаточно товара " + ВыборкаНоменклатура.НоменклатураПредставление 
            + " в количестве " + (ВыборкаНоменклатура.КоличествоВДокументе - ВыборкаНоменклатура.КоличествоОстаток)
            + " единиц";
            Сообщение.Сообщить();           

            Отказ = Истина;
            Продолжить;
        КонецЕсли;
       
        Если Отказ Тогда
            Возврат;
        КонецЕсли;       

        Выборка = ВыборкаНоменклатура.Выбрать();       

        Списать = ВыборкаНоменклатура.КоличествоВДокументе; 
        Пока Выборка.Следующий() И Списать > 0 Цикл       
            // Если количество в документе превышает остаток по партии,
            // то списываем всю партию, иначе списываем количество в документе
            КСписанию = ?(Списать > Выборка.КоличествоОстаток, Выборка.КоличествоОстаток, Списать);           

            // Движения по регистру "Остатки номенклатуры"
            Движение = Движения.ОстаткиНоменклатуры.Добавить();
            Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
            Движение.Период = Дата;
            Движение.Номенклатура = Выборка.Номенклатура;
            Движение.Партия = Выборка.Партия;
            Движение.Количество = КСписанию;           

            // РЕШЕНИЕ ПРОБЛЕМЫ КОПЕЕК
            // Если количество номенклатуры, которое нужно списать, равно количеству в документе,
            // то списываем всю сумму по партии
            Если КСписанию = Выборка.КоличествоОстаток Тогда
                Себестоимость = Выборка.СуммаОстаток;
            Иначе
                // иначе списываем необходимую часть суммы
                Себестоимость = Выборка.СуммаОстаток/   Выборка.КоличествоОстаток * КСписанию;
            КонецЕсли;           

            Движение.Сумма = Себестоимость;
         
            Списать = Списать - КСписанию;
        КонецЦикла;
    КонецЕсли;  

    // Движения по регистру "Продажи"
    Движение = Движения.Продажи.Добавить();
    Движение.Период = Дата;
    Движение.Номенклатура = ВыборкаНоменклатура.Номенклатура;
    Движение.Количество = ВыборкаНоменклатура.КоличествоВДокументе;
    Движение.Сумма = ВыборкаНоменклатура.СуммаВДокументе;
КонецЦикла;

 

Отображение характеристик номенклатуры через план видов характеристик

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

Как тип значения характеристик логично было бы использовать справочник "Производители". Но у нас его нет. Кроме того, что делать, если пользователь захочет создать новую характеристику (например, цвет)? Он то справочник в режиме пользователя создать не сможет. Решение простое – добавим в список справочников новый справочник "Значения характеристик", в котором для каждой характеристики будем хранить её значение. Чтобы знать, какому свойству принадлежит определённое значение делаем этот справочник подчинённым ПВХ "Свойства объектов". В поле "Тип значения характеристик" выбираем справочник "Значения характеристик" (при необходимости можно сделать тип значения составным и добавить другие справочники или типы, но в нашем конкретном случае делать это необходимости нет). Этот же справочник выбираем в "Дополнительные значения характеристик".

Для хранения характеристик добавляем новый регистр "Значения характеристик номенклатуры" – непериодический, режим записи независимый. Измерения:

  • Номенклатура (справочник "Номенклатура"), запрет незаполненных;
  • Характеристика (ПВХ "Свойства объектов"), ведущее.

Ресурс:

  • Значение ("Характеристика.СвойстваОбъектов"), устанавливаем "Связь по типу" – "Характеристика" и задаём "Связи параметров выбора" – "Характеристика".

В режиме пользователя добавляем в регистр "Значения характеристик номенклатуры" соответствующие товару характеристики.

Вывод характеристик в отчёте

Чтобы при компоновке отчёта платформа знала, что к номенклатуре привязаны характеристики, нужно в конструкторе запроса на закладке "Характеристики" добавить новую строку, в поле "Тип" указать справочник, к которому привязаны характеристики (у нас это справочник "Номенклатура"). В поле "Источник видов" нужно указать, где хранится список характеристик (в нашем случае ПВХ "Свойства объектов"). Можно указать запросом или таблицей (проще таблицей) и в поле "Виды характеристик" выбрать этот ПВХ. "Поле ключа" – "Ссылка", "Поле имени" – "Представление", "Поле типа значения" – "ТипЗначения".

Далее выбираем, где хранится источник значений (также проще использовать объектную модель и указать таблицу). В поле "Значения характеристик" указываем регистр, в котором храним значения. "Поле объекта" и "Поле вида" – реквизиты этого регистра (у нас "Номенклатура" и "Характеристика" соответственно), в "Поле значения" указываем ресурс "Значение".

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

Чтобы отобразить характеристики номенклатуры нужно вызвать отчёт, выбрать команду "Изменить вариант" и добавить группировку "Номенклатура.Производитель". Также желательно, чтобы в заголовке отображалось не полное название ("Номенклатура.Производитель"), а просто "Производитель". Сделать это очень просто, нужно на закладке "Дополнительные настройки" изменить параметр "Тип заголовка полей" с "Авто" на "Краткий".

 

 

Ну и раз уж заговорили об отчётах, то нельзя не упомянуть о том,

Как сделать шапку макета в СКД

Чтобы не нарваться на замечание, что внешний вид отчёта не соответствует заданию, в большинстве задач нужно сделать заголовок отчёта. К счастью, мы можем сделать это очень легко и без единой строчки кода.

Сначала добавим группировку "Детальные записи", которая будет отвечать за вывод нужной нам области и присвоим этой группировке имя (в данном конкретном случае "Заголовок").

 

Далее необходимо настроить данную группировку

  1. В группировке "Заголовок" выбираем "Детальные записи" и на закладке "Выбранные поля" снимаем отметку "Авто" (иначе система попытается вывести все поля и отвалится с ошибкой).


 

  1. На закладке "Другие настройки":
    - макет оформления – без оформления;
    - количество записей – 0;
    - тип макета – вертикальный.

 

Переходим на закладку "Макеты", добавляем макет заголовка группировки и указываем необходимую область.

 

Для вывода параметров необходимо использовать заполнение по шаблону и для каждого из параметров установить соответствующие значения в поле "Выражение".

 

 

P.S. В статье, конечно же, раскрыты далеко не все вопросы оперативного учёта, которые возникают при подготовке к экзамену на специалиста по платформе, но надеюсь, что она хоть немного Вам поможет.

В выгрузке первой базы пример проведения согласно новой методике.

Во второй показана старая методика контроля остатков, работа с планом видов характеристик и пример создания заголовка отчёта в СКД.

 

Тестировалась на релизе 8.3.16.1690

Скачать файлы

Наименование Файл Версия Размер
Пример проведения согласно новой методике

.dt 181,84Kb
4
.dt 181,84Kb 4 Скачать
Пример контроля отрицательных остатков согласно традиционной методике проведения

.dt 203,94Kb
0
.dt 203,94Kb Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. partizand 108 10.12.20 20:37 Сейчас в теме
Все верно. Но пара замечаний.
БлокироватьДляИзменения не блокирует по сути, а связан с галкой разделять итоги. Где то была статья в про это. Блокировка накладывается автоматом при записи в регистр и без БлокироватьДляИзменения. Вроде бы...
И получать учётную политику логичнее до блокировки, что бы сократить её время.
user712426; v_moskalyk; +2 1 Ответить
3. capitan 2340 11.12.20 10:30 Сейчас в теме
(1)
(1)
БлокироватьДляИзменения не блокирует по сути, а связан с галкой разделять итоги
статья была и все вроде с ней согласились, но принскринов из профайлера никто не приложил.
ИМХО разделение итогов как раз и сделано, чтобы можно было параллельно писать в одну таблицу не блокируя ее всю, а БлокироватьДляИзменения это отключает.
В принципе, если делать по фен-шую блокировки, то надо проверять не файловая ли база, иначе смысла вообще нет в наложении управляемых блокировок - будет вся таблица блокироваться в любом случае.
user712426; v_moskalyk; +2 Ответить
2. capitan 2340 11.12.20 10:25 Сейчас в теме
Вдогонку...
ЭлементБлокировки.ИсточникДанных может использовать источник данных результат запроса, выгружать в таблицу значений необязательно
и в принципе проще взять ТЧ СписокНоменклатуры, она в памяти, чем делать запрос на сервер за ней
А если делаете отдельным запросом, то логично тогда в нем хотя бы услуги отсекать.
user712426; v_moskalyk; +2 Ответить
4. v_moskalyk 29 11.12.20 19:02 Сейчас в теме
(2) За замечания спасибо. Услуги да, отсекать надо. Написано уже по привычке, у нас товары и услуги в разных ТЧ всегда. По поводу выгрузки ТЧ СписокНоменклатуры - если в ней есть дубли строк (а часто они необходимы), то обращение к регистру будет происходить столько раз, сколько есть дублей, разве нет?

(1) Хотел сначала разъяснить некоторые моменты контроля отрицательных остатков по разным методикам проведения, поэтому получилось, что в статье учётную политику получаем после блокировки. На самом деле в приложенных базах она в самом начале процедуры проведения.
"БлокироватьДляИзменения не блокирует по сути, а связан с галкой разделять итоги" - потому в статье и выделена необходимость взвести флажок "Включить разделение итогов".
Задача была не разъяснить всё про управляемые блокировки (для этого целый Эксперт есть :-), а дать необходимые данные для сдачи экзамена. В любом случае Вы правы в своих замечаниях.
user712426; +1 Ответить
5. capitan 2340 11.12.20 19:22 Сейчас в теме
(4)
обращение к регистру будет происходить столько раз, сколько есть дублей, разве нет?

Чегой то ? )
Это же просто массив, он как то дальше передастся на сервер, аналогично как в запросе
6. SvanMoscow 7 17.10.22 13:18 Сейчас в теме
Добрый день.
В описании структура регистра следующая:
- регистр накопления (остатки) "Остатки номенклатуры" – измерения "Номенклатура", "Партия"; ресурсы "Количество", "Сумма" (изменён существующий);
В описании новой схемы движения списания описаны так:

Пока Выборка.Следующий() Цикл
    // регистр ОстаткиНоменклатуры Расход
    Движение = Движения.ОстаткиНоменклатуры.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
    Движение.Период = Дата;
    Движение.Склад = Склад;
    Движение.Номенклатура = Выборка.Номенклатура;
    Движение.Количество = Выборка.Количество;
КонецЦикла;
Показать

Вопрос:
Почему в описании регистра не указан реквизит "Склад", а в описании движений, нет реквизита "Партия" и измерения "Сумма" ?
7. Светлый ум 281 27.03.23 08:04 Сейчас в теме
+1
Наглядно, хорошее решения для подготовке к экзамену специалист
Оставьте свое сообщение

См. также

Оптимизация запросов 1С - от теории к практике

Подготовка к аттестации Запросы Конфигурации 1cv8 Платные (руб)

Желаете повысить свой уровень разработки? Не знаете, как оптимизировать работу тяжелых запросов 1С? Или знаете методы оптимизации, но на практике не получаете результат? Тогда эта интерактивная обучающая программа для Вас! Оптимизация запросов прямо в программе 1С:Предприятие 8. Несколько десятков практических заданий, рассматривающих методы оптимизации на практике. От Вас требуются реальные решения - оптимизация представленных запросов. Автоматизированная система оценит Ваш запрос и представит результат проверки.

1800 руб.

06.07.2015    68453    115    9    

123

Пример решения задачи по оперативному учету для экзамена (1С: Специалист по платформе 8.3)

Подготовка к аттестации Платформа 1С v8.3 Бесплатно (free)

Готовясь к повторной сдаче экзамена 1С:Специалист по платформе, получил просьбу от коллег - расписать решение нескольких билетов, чтобы было проще понять логику и ход решения. Сделав описание одного - двух билетов, выложил всё это на github и оставил до поры до времени. Недавно наткнулся и стало жалко, если тот труд пропадёт зря, поэтому решил выложить одно решение в виде статьи и прикрепить к нему ссылку на github, вдруг ещё кому данный материал будет полезен.

01.11.2022    3661    zeltyr    1    

20

Подготовка к экзамену "Специалист по платформе". Часть 1

Механизмы платформы 1С Подготовка к аттестации Платформа 1С v8.3 Бесплатно (free)

Нашел свои записки к подготовке к экзамену "Специалист по платформе", может кому пригодится :)

17.10.2022    2643    Drfreeman    1    

21

Решения всех основных билетов для подготовки к Специалист ЗУП

Подготовка к аттестации Платформа 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Обучение, бизнес-тренинг, курсы Россия Абонемент ($m)

Когда готовился к сдаче экзамена на Специалист по ЗУП, в процессе решения задач обнаружил, что просто нет информации в сети. Проверено за три месяца обсуждений и опросов в группе в телеграмме во время подготовки. Успешно сдал с первого раза на 4ку (досадная невнимательность). По новым требованиям 1С все билеты должны решаться В РАСШИРЕНИИ и отчеты в нескольких билетах подключаться как ВНЕШНИЕ! Решал на последней конфигурации в Гуру: 1С:ЗУП 3.1.16.108 (ниже брать нельзя). В публикации приведены ПРИМЕРНЫЕ тексты билетов, встречающиеся на экзамене, на сайте учебного центра 1С этих текстов НЕТ. Всё, что можно скачать - это регламент экзамена и тело условной задачи №1. Воссозданы (по опросам сдающих) все встречающиеся варианты в данный момент со всеми изменениями. В целом, отличия от тех, что встретятся на экзамене в ближайшем будущем, несущественны (другие цифры для расчета, другой состав полей в отчетах).

3 стартмани

10.10.2022    3746    35    Rafaraf    5    

23

Таблица умножения, деления на СКД, управляемые формы (пример тестового задания)

Подготовка к аттестации СКД Платформа 1С v8.3 Абонемент ($m)

Пример тестового задания и его реализации. Протестировано на версии платформы 8.3.18.1289.

1 стартмани

30.05.2022    4743    8    Johnson1987    13    

7

Ошибки релиза ERP 2.5.7.226, мешающие сдать экзамен специалист-консультант, и способы их преодоления

Подготовка к аттестации Платформа 1С v8.3 1С:ERP Управление предприятием 2 Россия Управленческий учет Бесплатно (free)

Захотелось зачем-то сдать экзамен специалист-консультант по управленческому учёту в ERP. И в процессе подготовки наткнулся на ряд досадных ошибок релиза, на обход которых было потрачено порядочно времени. Надеюсь, эта информация будет полезна тем, кто только начал подготовку.

26.02.2022    2165    zeltyr    1    

5

Схема сертификации 1С

Подготовка к аттестации Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

16.08.2021    20786    Koder_Line    8    

6

Тестовое задание на вакансию "Программист 1С" №9

Подготовка к аттестации Платформа 1С v8.3 Абонемент ($m)

Тестовое задание на вакансию "Программист 1с". Достаточно интересно тем, что в решении использованы: "хитрый" запрос и его обход для получения шахматной ведомости, макет табличного документа с расшифровками, модуль менеджера набора записей и обработка событий динамического списка. Тестировалось на платформе 8.3.18.1289.

1 стартмани

28.04.2021    6242    28    Sungang    1    

4

Решение тестовых заданий на собеседовании

Подготовка к аттестации Платформа 1С v8.3 8.3.14 Конфигурации 1cv8 Россия Абонемент ($m)

Проходил собеседование. Было предложено решить тестовые задания. Может, кому будет интересно.

1 стартмани

02.04.2021    8493    11    gonzaomsk    2    

4

Детальные описания решений всех билетов экзамена 1C:Специалист-консультант УТ. Пример пояснительной записки.Список отчетов для предоставления экзаменаторам. Внимание! Решение выполнено на версии УТ 11.4, с 19.09.22 г. экзамен принимается на версии УТ 11.5

Подготовка к аттестации Платформа 1С v8.3 1С:Управление торговлей 11 Управленческий учет Абонемент ($m)

Представляю вашему вниманию детальные описаний решений экзамена «1С:Специалист-консультант по внедрению прикладного решения 1С:Управление торговлей 8» с образцом пояснительной записки и описанием настройки отчетов для проверяющих.

6 стартмани

16.03.2021    17568    253    PoZiTiFFF    69    

27

Вопросы с технических интервью

Подготовка к аттестации Платформа 1С v8.3 Бесплатно (free)

Популярные вопросы с технических собеседований на вакансию "Программист 1С".

15.03.2021    7662    Sungang    19    

22

Как сдать экзамен 1С:Специалист по платформе?

Подготовка к аттестации Платформа 1С v8.3 Россия Абонемент ($m)

Не пора ли получить сертификат 1С:Специалист по платформе? Для этого ...

1 стартмани

18.01.2021    33451    vasilievil    12    

228

Решения билетов экзамена 1С:Специалист по УТ 11

Подготовка к аттестации Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Абонемент ($m)

Представлены решения билетов (по ним я готовился к специалист по УТ. В данной публикации нет текстов билетов и ссылок на них, только скрины с пошаговыми решениями билетов ( пояснениями). Экзамен сдан в январе 2021 года (сдавал на 11.4.7). Решения могут использоваться в качестве дополнения к другим материалам для подготовки. Раздел 1 с пояснениями 42 стр. (текст со скринами) + раздел2 (выгрузки).

1 стартмани

17.01.2021    11326    122    user1514921    9    

18

Решения билетов экзамена (спец-конс по УТ) 1С:Специалист-консультант по УТ 11

Подготовка к аттестации Платформа 1С v8.3 1С:Управление торговлей 11 Россия Управленческий учет Абонемент ($m)

Представлены скрины с пошаговым решением (пояснениями) билетов (их 3, это материалы моей подготовки к специалист-консультант по УТ).

1 стартмани

29.12.2020    8761    37    user1514921    6    

9

Специалист по платформе 8.3. Все задачи раздела "Оперативный учет"

Подготовка к аттестации Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Решения всех задач раздела "Оперативный учет" для подготовки к сертификации по "1С:Специалист по платформе 8.3".

2 стартмани

22.12.2020    8978    52    v_moskalyk    0    

5

Решение задач к экзамену Специалист-консультант БГУ ред. 2.0

Подготовка к аттестации Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия государственного учреждения Государственные, бюджетные структуры Россия Бухгалтерский учет Абонемент ($m)

Решения билетов из первого раздела к сборнику задач для подготовки к экзамену 1С:Специалист-Консультант по внедрению прикладного решения 1С:БГУ ред. 2.0 (арт. 4601546128331).

1 стартмани

16.12.2020    12259    64    Eramas    38    

7

Подготовка к экзамену 1С:Специалист по платформе. Рецепты от Капитана

Подготовка к аттестации Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Хотя первым статьям с советами по подготовке к экзамену уже больше 6 лет, некоторые из них максимально подробны и заслуженно получили сотни плюсов, стало доброй традицией после успешной сдачи на 1С:Специалист отчитываться на сайте. Не буду ее нарушать и расскажу о том, что пригодилось мне. А вы уже посмотрите, готовить(ся) по-своему или пользоваться моими рецептами. Если, конечно, статья придется вам по вкусу. Вдобавок, приближаются новогодние каникулы и, возможно, вы захотите попробовать не только мандарины и оливье.

10.12.2020    12152    capitan    30    

110

Компания занимается оптовой торговлей. Тестовая задача

Подготовка к аттестации Платформа 1С v8.3 Россия Управленческий учет Абонемент ($m)

Распространенное тестовое задание на собеседованиях: 1. Компания занимается оптовой торговлей... Заготовка с решением такой задачи на базе каркасной конфигурации на платформе 1С:Предприятие 8.3 (8.3.17.1386).

1 стартмани

17.08.2020    13018    23    stdstd    11    

4

[ERP] Бюджетирование. 1С:Специалист-консультант. Часть 2

Подготовка к аттестации Бюджетирование и планирование Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Акцизы Бесплатно (free)

Разберем основные подзадачи из билетов экзамена "1С:Специалист-консультант" по внедрению подсистемы "Бюджетирование" в "1С:ERP Управление предприятием 2.4".

25.06.2020    12571    leobrn    21    

28

Решения задач из сборника 1С:СПЕЦИАЛИСТ по УТ 11.4

Подготовка к аттестации Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Абонемент ($m)

Мои решения задач, часто встречающихся на экзамене 1С:СПЕЦИАЛИСТ по УТ 11.4.

1 стартмани

05.06.2020    12299    69    dimens    17    

12

[ERP] Бюджетирование. 1С:Специалист-консультант. Часть 1

Подготовка к аттестации Бюджетирование и планирование Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бюджетный учет Бесплатно (free)

Решим пример экзаменационного задания экзамена "1С:Специалист-консультант" по внедрению подсистемы "Бюджетирование" в "1С:ERP Управление предприятием 2.4".

01.06.2020    21022    leobrn    56    

50

Тестовые задания для отбора на вакансию "Ведущий программист 1С" (г. Москва)

Подготовка к аттестации Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Вашему вниманию представлены 9 тестовых заданий для отбора на вакансию "Ведущий программист 1С" (г. Москва)

9 стартмани

30.05.2020    4958    5    Tornado_Storm    0    

5

Решения билетов для подготовки к экзамену 1С: Специалист по Управлению торговлей 11.4

Подготовка к аттестации Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Управленческий учет Абонемент ($m)

В марте сдала успешно экзамен Специалист по Управлению торговлей (на экзамене была УТ 11.4.6.230) и делюсь своими наработками для подготовки для сдачи экзамена.

1 стартмани

19.05.2020    13671    109    user1409807    26    

18

1С Специалист ЗУП 3

Подготовка к аттестации Зарплата Платформа 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Абонемент ($m)

Решение билетов по 1С Специалист ЗУП 3. Решения подготовлены на Зарплата и Управление Персоналом 3.1.12.144

1 стартмани

16.04.2020    7490    27    MoiseevSN    11    

12

Личный опыт сдачи экзамена 1С:Специалист по платформе 8.3

Подготовка к аттестации Платформа 1С v8.3 Россия Абонемент ($m)

Описание личного опыта сдачи экзамена 1С:Специалист по платформе 8.3. Представлены выводы по подготовке и сдаче экзамена. Текстов задач в представленных примерах нет.

1 стартмани

16.03.2020    17157    32    OlegAl    18    

6

Решение задач для подготовки к Специалисту по УТ 11.4.ххх

Подготовка к аттестации Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Материалы для подготовки к спецу по УТ для релиза 11.4.6.230 по состоянию на 20.02.2020г.

2 стартмани

20.02.2020    14735    94    Axel_F    17    

13