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

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

Разработка - Решение задач на 1С:Специалист

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

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

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

Списание себестоимости нужно организовать по партиям в зависимости от принятого в учётной политике текущего метода списания (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
1
.dt 181,84Kb 1 Скачать
Пример контроля отрицательных остатков согласно традиционной методике проведения

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

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

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

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

Чегой то ? )
Это же просто массив, он как то дальше передастся на сервер, аналогично как в запросе
Оставьте свое сообщение

См. также

План подготовки к аттестации на 1С: Специалиста по платформе (+ Ссылки на материалы) Промо

Решение задач на 1С:Специалист v8 Россия Абонемент ($m)

Хочу поделиться собственным планом подготовки к аттестации на 1С: Специалист по платформе 8.3 со ссылками на материалы (и указанием стоимости).

1 стартмани

23.12.2017    25277    UtSpar    39    

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

Решение задач на 1С:Специалист v8 Россия Абонемент ($m)

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

1 стартмани

18.01.2021    16712    vasilievil    10    

50+ советов для успешной сдачи 1С: Специалист по платформе Промо

Решение задач на 1С:Специалист v8 Абонемент ($m)

Данная подборка содержит советы по основным вопросам, возникающих при решении задач ОУ, БУ и ПР. В процессе подготовки использовал много материалов от методичек 1С и курсов до публикаций  ресурса Infostart. Предлагаю вниманию  программистов 1С, решивших сдать этот экзамен, свою скромную подборку  советов. В ней Вы найдете основную информации по часто возникающим вопросам при решении экзаменационных задач. Прошу объективно  покритиковать материал. Впоследствии планирую его дорабатывать, т.к. полагаю, что это сэкономит  время готовящихся, и они смогут сосредоточиться  непосредственно на решении задач  вместо поиска верных решений для  реализации той  или иной задачи.    Цель данной публикации - получить обратную связь от готовящихся и уже сдавших этот экзамен программистов 1С, чтобы на основе полученных данных создать максимально полный гайд по подготовке к этому серьезному экзамену.Верю, что совместными усилиями это - реально.

1 стартмани

24.10.2016    93114    NN2P    29    

Консультация для сдачи экзамена "1С:Специалист" по конфигурированию платформы

Решение задач на 1С:Специалист v8 Россия Абонемент ($m)

В данной статье приведено описание решения задач при подготовке к сдаче экзамена на специалиста по платформе "1С:Предприятие 8.3".

1 стартмани

23.12.2017    33344    FoxSPb2012    6    

Алгоритмы с решениями для экзамена Специалист УТ 11.1

Решение задач на 1С:Специалист v8::ОУ УТ11 Россия УУ Абонемент ($m)

Решение 20 задач встречающихся на экзамене, в виде подробных инструкций. Решение на релизе УТ 11.1.10.199.

1 стартмани

08.01.2017    23523    IgorXml    5    

Подготовка к аттестации «Специалист» по платформе: шаблон решения задач по бизнес-процессам

Решение задач на 1С:Специалист v8 Абонемент ($m)

Цель этой статьи – помочь минимизировать время на подготовку к решению задач из раздела «Бизнес-процессы» на аттестации «Специалист» по платформе «1С:Предприятие 8», дать простой шаблон решения таких задач. Этот шаблон легко запомнить, легко следовать ему на экзамене. Использование шаблона позволит ускорить решение задач и, в конечном итоге, успешно сдать экзамен. В статье подробно рассмотрено использование этого шаблона для решения всех десяти задач по бизнес-процессам из сборника.

1 стартмани

02.09.2013    40906    ishch    28    

Методические указания к практическим занятиям по курсу "Автоматизированные информационные системы" Промо

Решение задач на 1С:Специалист v8 1cv8.cf Россия Абонемент ($m)

Методические указания предназначены для обучения студентов практике проектирования, составления проекта и разработки программных продуктов с использованием современной технологической платформы «1С:Предприятие 8», оформления документации программного продукта.

1 стартмани

13.06.2012    22151    ksnik    1    

Решебник к сборнику задач "1С:Специалист-консультант" по внедрению прикладного решения "1С:БГУ 8"

Решение задач на 1С:Специалист v8 БГУ Россия Госбюджет Абонемент ($m)

Предлагаю всем заинтересованным лицам совместно составлять решебник для подготовки к данному экзамену.

1 стартмани

05.08.2013    63298    NickOmskiy2    575    

Шпаргалки для подготовки к экзамену 1С:Специалист-консультант по внедрению "1С: Зарплата и управление персоналом 8"

Решение задач на 1С:Специалист v8 ЗУП2.5 Россия Абонемент ($m)

Шпаргалки для подготовки к экзамену 1С:Специалист-консультант по внедрению "1С: Зарплата и управление персоналом 8" (прорешаны вопросы из глав 1-4 "Сборника задач к экзамену 1С:Специалист-консультант по внедрению "1С: Зарплата и управление персоналом 8")

1 стартмани

05.11.2012    14543    ИрискаЯ    8    

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

Решение задач на 1С:Специалист v8 1cv8.cf Россия Абонемент ($m)

Основные моменты, которые нужно учитывать при сдаче экзамена 1С:Специалист по платформе

1 стартмани

17.10.2012    44459    esa35    8    

Решение задач по управляемым формам (с подробным описанием) из "Сборника задач для подготовки к экзамену "1С:Специалист" по платформе "1С:Предприятие 8" (5.1 - 5.3)

Решение задач на 1С:Специалист v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Решение задач по управляемым формам (с подробным описанием) из "Сборника задач для подготовки к экзамену "1С:Специалист" по платформе "1С:Предприятие 8" (5.1 - 5.3)

1 стартмани

26.09.2012    16602    headMade    4    

Готовимся к экзамену 1С: Специалист по платформе 8.х. Разбор часто встречающихся ошибок.

Решение задач на 1С:Специалист v8 Россия Абонемент ($m)

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

1 стартмани

05.05.2012    141624    mrdug    30