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

10.12.20

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

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

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

Наименование Файл Версия Размер
Пример проведения согласно новой методике
.dt 181,84Kb
7
.dt 181,84Kb 7 Скачать
Пример контроля отрицательных остатков согласно традиционной методике проведения
.dt 203,94Kb
3
.dt 203,94Kb 3 Скачать

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

Списание себестоимости нужно организовать по партиям в зависимости от принятого в учётной политике текущего метода списания (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

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

См. также

Запросы 1С OnLine. Интерактивная обучающая программа.

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

Интерактивное изучение языка запросов с самого начала: - 50 практических заданий с различным уровнем сложности; - Методические материалы по практике написания запросов; - Описание назначения таблиц и индексов 1С Предприятие 8; - Методика решения реальных задач запросом 1С; - Автоматическая система проверки решений с указанием ошибок; - Инструкции по решению задач с разъяснениями; - Техническая поддержка пользователей. Подходит для начинающих и действующих разработчиков 1С

1800 руб.

11.02.2014    73727    677    13    

165

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

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

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

1800 руб.

06.07.2015    70732    118    9    

128

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

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

Готовилась три месяца, сдала с первого раза. Делюсь опытом, лайфхаками и ресурсами, по которым учила материал.

14.03.2024    7537    PROSTO-1C    38    

67

Как я стал Экспертом по технологическим вопросам за 3 месяца. Часть 2 (обновлена)

Подготовка к аттестации Бесплатно (free)

Мой опыт подготовки и сдачи к экзамену 1С: Эксперт по технологическим вопросам. Часть 2.

04.02.2024    5383    shuhratsj    16    

70

Как я стал Экспертом по технологическим вопросам за 3 месяца

Подготовка к аттестации Бесплатно (free)

Мой опыт подготовки и сдачи к экзамену 1С: Эксперт по технологическим вопросам за 3 месяца. Часть 1.

29.01.2024    12618    shuhratsj    102    

152

1С: Специалист-консультант ЗУП 8. Решения из сборника задач для подготовки к экзамену «1С:Специалист-консультант» по внедрению прикладного решения „1С:Зарплата и управление персоналом 8“, редакция сентябрь 2023. Часть 6

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

Часть шестая. Делюсь сквозным решением 15-ти задач из сборника задач для подготовки к экзамену «1С:Специалист-консультант» по внедрению прикладного решения „1С:Зарплата и управление персоналом 8“, редакция сентябрь 2023.

5 стартмани

01.12.2023    1249    15    Ocherkcons    0    

6

1С: Специалист-консультант ЗУП 8. С чего начать решение билета на экзамене? Актуальность: ноябрь 2023 года

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

Делюсь наработками из опыта подготовки к экзамену на получение сертификата 1С:Специалист-консультант по внедрению прикладного решения „1С:Зарплата и управление персоналом 8“. Первые минуты на экзамене.

17.11.2023    2135    Ocherkcons    0    

6

Материал для подготовки к экзамену "Специалист по платформе 1С: предприятие 8.3" (2024)

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

Откройте для себя уникальную возможность — сдачи экзамена «1С: Специалист по платформе 1С: предприятие 8.3» с первого раза! Предлагаемый материал поможет вам при подготовке к экзамену!

10 стартмани

30.10.2023    7328    76    user1948557    20    

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

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

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

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

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