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

25.11.16

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
50+ фактов для успешной сдачи 1с специалист по платформе
.docx 341,71Kb
155 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Общее (ОУ,БУ,ПР) 3

1) Проверка результата запроса на пустоту: 3

2) Вопрос запрета оперативного проведения: 3

3) Свойство «Удаление движений»: 4

4)Режим разделения итогов: 4

5)Получение данных за период: 4

6) Флаг Общего модуля "Вызов сервера": 4

7) Обращение к реквизиту составного типа в запросе: 4

8) Основные задачи, решаемые при реализации количественного учета: 5

9)Оптимальное проведение документа списания товаров при реализации количественного учета. 5

10) «Защита от дурака» за счёт установки свойств элементов интерфейса: 5

11) Привязка сообщения к элементу форму: 5

12) Рекомендации по установке управляемой блокировки при использовании старой методики проведения: 6

13) Новая технология проведения предполагает следующий порядок действий при реализации количественного учета: 6

14) Использование объектной  модели  "РегистрНакопления.Менеджер". 6

15) Составление схемы  запроса выполняется  по следующей методике для новичков: 8

16) Произвольное  условие в конструкторе запросов: 9

17) Правила выполнения запросов: 9

18) Управляемые блокировки: 10

19) Правила внесения изменений в структуру регистров рабочей базы: 10

20) Направления оптимизации алгоритма проведения: 11

21)Оптимизация  оборотных регистров. Агрегаты: 12

БУ. 13

1)Ручная операция, уточнения по кор.счету: 13

2) Флаг "Балансовый": 13

3) Реализация аналитического учёта : 13

4)Рекомендации по определению субконто: 14

5) Индексирование таблиц регистра бухгалтерии: 14

6) Анализ результата запроса, когда неизвестно на каком месте находится какое субконто: 15

7)Получение развернутого сальдо из виртуальных  таблиц: 15

8) Количественный учет. 15

9) Валютный учет: 15

10) Документ РучнаяОперация: 16

11) Объект НаборЗаписей регистра бухгалтерии. 18

12) МодульНабораЗаписей  регистра бухгалтерии. 18

13) Признаки учета субконто: 19

ОУ: 20

1) Корректировка записей регистров: 20

2) Оптимизированный  алгоритм проведения документа. 21

3) Правило упрощения реализации запроса по нескольким источникам.. 21

4) Виртуальные таблицы.. 22

5) Реализация партионного учета. 23

6)Организация планирования  процесса  оказания постпродажных услуг. Работа  с регистром сведений. 23

СКД.. 24

ПР. 24

1) Период регистрации: 24

2) Состав расчетных механизмов платформы: 25

3) Настройка расчетных свойств плана видов расчета: 26

4) Выбор критерия попадания в базовый период: 27

5) Вытесняющие виды расчета: 28

6) Регистры расчета: 28

7) Настройка Измерений, Ресурсов и Реквизитов РР: 29

8) Этапы  сеанса  расчета  зарплаты: 30

9) Особенности метода Записать  набора записей РР. 31

10) Виртуальная таблица РР ДанныеГрафика: 32

11) Подход к  установлению  соответствия  строк  регистра и строки необходимых данных. 33

12) Виртуальная таблица РР ФактическийПериодДействия. 34

13) Виртуальная  таблица База РР. 34

14) Параметры виртуальной таблицы База. 35

15) Состав полей виртуальной таблицы База : 36

16) Использование периода действия в качестве базового периода. 36

17) Расчет суммы начисления , зависящей от нескольких базовых начислений. 36

18) Частичное попадание периода действия базового вида расчета в базовый период. 37

19) Получение суммы базы в разрезе базовых ВР: 38

20) Построения отчета по начислениям. 38

21) Корректировка результатов расчета за прошедший период. 38

22)Перерасчеты.. 40

23) Объект конфигурации Перерасчет. 40

24) Объектная модель работы с перерасчетом.. 41

25) Две особенности реализации Перерасчетов. 42

26) Расчет зарплаты по табелю.. 42

26.1) Виды расчета: 44

26.2) Расчет зарплаты: 46

26.3) Отчет: 50

27)Перетекающий период: 50

28) МногократноеИзменениеОклада: 53

Общее (ОУ,БУ,ПР)

1) Проверка результата запроса на пустоту:

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

2) Вопрос запрета оперативного проведения:

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

 
Тем не менее его можно не обрабатывать, и даже запретить, т.к. это упростило бы жизнь. 
Вот сообщение, где сказано (в самом конце), что за это делали замечания: 
http://forum.chistov.pro/index.php?topic=993.msg47005.. 
Дальше обсуждали - это замечание основано на ошибке из перечня: "Если при проведении документа используются каким-то образом данные, считываемые из регистров, обязательно требуется предусмотреть получение таких данных на момент проведения документа". Эта ошибка = -1 балл. При обработке оперативного проведения как раз получаются данные НЕ на момент проведения документа. 
По поводу запрета оперативного проведения - идея не нова, так делают много лет, тема поднималась в сообщениях 2011-2012 годов, насколько мне известно, за это замечаний не

Цитата 1С:Специалиста по платформе:

«

… Я сам на экз опер проведение запрещал во всех доках, но, по-моему, на это Гончаров просто не смотрел; в коде оперативное проведение я не обрабатывал, это Гончаров, естественно, видел, замечаний не было…

»

Оперативное проведение чаще всего не нужно  при решении бухгалтерских задач.

 Выдержка из курса "Решение задач бух.учета", стр.45 
"...
Свойство "Оперативное проведение" устанавливаем в значение "Запретить". Контроль оперативности имеет смысл только для учета в реальном времени и в бухгалтерском учете совсем или почти не используется
..."

3) Свойство «Удаление движений»:

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

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

NB: Только при проведении по-старому, когда нужно считать данные с регистра чтобы их потом изменить, нужно делать запись пустых значений, а при  новой методике проведения -этого делать не нужно.

4)Режим разделения итогов:

Режим разделения итогов включен по умолчанию для регистров конфигурации

5)Получение данных за период:

При получении данных ЗА ПЕРИОД следует брать конец периода даты окончания периода:
- СКД  КонецПериода(&ИмяПериода,"День");
- Параметр запроса КонецДня(ИмяПараметра)

При получении остатка НА ДАТУ(конец дня, включая его последнюю секунду) следует воспользоваться объектом Граница:
В 

Момент = Новый Граница(КонецДня(ИмяПараметра),ВидГраницы.Включая);



, где ИмяПараметра - параметр, содержащий значение даты окончания

6) Флаг Общего модуля "Вызов сервера":

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

7) Обращение к реквизиту составного типа в запросе:

В случае осуществления запроса к реквизиту значения составного типа необходимо использовать предложение ВЫРАЗИТЬ, например:

ВЫРАЗИТЬ ( ОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура) КАК Субконто1 

8) Основные задачи, решаемые при реализации количественного учета:


1.Эффективное считывание данных из базы и документа, необходимых для проведения.
2.Расчет стоимости списания, которую обычно рассчитывают по одной из принятых методик ( по средней, FIFO или LIFO):

Окр(Выборка.СуммаОстаток * Выборка.Количество / Выборка.КоличествоОстаток, 2)


(видел в методичке 1с Решение задач БУ : стр.135)
3.Контроль возможности проведения документа / контроль остатков
4.Блокирование считываемых данных при многопользовательском режиме в клиент - серверной реализации.

9)Оптимальное проведение документа списания товаров при реализации количественного учета

Запрос использует временные таблицы и состоит из нескольких пакетов:

1.1. Первый пакет запроса получает сгруппированные данные табличной части документа с отбором по данному документу и необходимыми условиями (например отбор только Товаров) с индексацией по номенклатуре. Результат выполнения помещён во временную таблицу. По данным этой временной таблицы имеет смысл блокировать записи таблицы РН, в случае использования старой методики проведения, т.е. тогда, когда реализовать списание товара из регистра невозможно без получения данных из регистра. Например, для списания себестоимости необходимо знать количество и стоимость остатков списываемой номенклатуры.

 1.2. Второй пакет запроса получает остатки с отбором по номенклатуре из первого пакета, значения ресурсов проверены на отсутствие значения (NULL), данные из временной таблицы соединены левым соединением с виртуальной таблицей остатков (при необходимости сгруппированы по номенклатуре (если это партионный учет, отсортированы по моменту времени Партии))

10) «Защита от дурака» за счёт установки свойств элементов интерфейса:

Следует помнить о возможности установки ограничений в полях ввода в формах, а именно где необходимо – запрещать незаполненные значения, устанавливать маски, устанавливать диапазон допустимых значений. В большинстве случаев это решает вопрос «защиты от дурака»  на начальном уровне.

11) Привязка сообщения к элементу форму:
Прикрепление сообщения о нехватке товара при списании к столбцу Количество ТЧ Товары. Рекомендуется делать во всех случаях для доведения приема до автоматизма(одна из задач на УФ):

Сообщение. Текст = " Не хватает" + Выборка.Представление + " в количестве " + Число(Выборка.Количество - Выборка.КоличествоОстаток) ;
Сообщение. Поле = "Товары[" + (Выборка.НомерСтроки -1) + "].Количество";
Сообщение.УстановитьДанные(ЭтотОбъект);

12) Рекомендации по установке управляемой блокировки при использовании старой методики проведения:



1. Следует устанавливать блокировку максимально близко к концу транзакции (чем меньше блокировка длится, тем больше пользователей работает одновременно, т.е. выше параллельность).
2. Известно, какие данные блокировать
3.Блокировка должна производиться до обращения к конкурентному ресурсу, например, виртуальной таблице РегистраБухгалтерии.

БУ:

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

Для субконто есть специфика установки значения блокировки - не всегда точно известно на какой позиции закреплено искомое субконто, поэтому используется ссылка на вид характеристики (вид субконто) для обозначения поля пространства блокировки.

13) Новая технология проведения предполагает следующий порядок действий при реализации количественного учета:

1.Описываем формирование движений документа, установив для них специальный флаг блокирования данных итогов (БлокироватьПриИзменении). 

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

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

14) Использование объектной  модели  "РегистрНакопления.Менеджер"

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

Рассмотрим данную  технологию  на примере. Необходимо дать пользователю  возможность контролировать  остатки  в  старых  документах  на дату  их  проведения. Для  этого необходимо  показать на форме  документа остатки  товаров, попавших  в  табличную  часть, актуальные  на момент регистрации самого документа. Эта  задача  реализована следующим образом:

1.В форму документа добавлен реквизит Остаток(Строка).

2. Поскольку  необходимо  обработать  событие изменения  табличной  части документа, код будет  располагаться  в  обработчике события "ПриАктивизацииСтроки" форму документа. В обработчике  пропишем  следующий  код:

&НаКлиенте

Процедура ТоварыПриАктивизацииСтроки(Элемент)

  Стр = Элементы.Товары.ТекущиеДанные;

  Если  Стр <> Неопределено Тогда

   Ост =  ОпределениеОстаткаТовара(Стр.Номенклатура,

                Объект.Склад, Объект.Дата, Объект.Ссылка);

 КонецЕсли;

КонецПроцедуры

&НаСервереБезКонтекста

Функция ОпределениеОстаткаТовара (ТекТовар, Склад, Дата, Ссылка)

      ОстаткиТов = РегистрыНакопления.ОстаткиНоменклатуры;

      Фильтр = Новый  Структура;

      Фильтр.Вставить("Номенклатура", ТекТовар);

      Фильтр.Вставить("Склад", Склад);

     Если ЗначениеЗаполнено(Ссылка)  Тогда

        //если док.  есть  в  базе,  у него  заполнены поля  дата  и ссылка, значит по ним  можно

       //сформировать МоментВремени для отбора остатков

         ВременнойМомент =  Новый МоментВремени(Дата, Ссылка);

       Иначе

      //получаем самые актуальные остатки

         ВременнойМомент = Неопределено;

     КонецЕсли;   

     ТаблицаОст = ОстаткиТов.Остатки(ВременнойМомент, Фильтр,"Номенклатура, Количество");

     //возврат  итога по  колонке Количество

      Возврат ТаблицаОст.Итог("Количество");

КонецФункции



Объектная  модель  используется  пока нужно получать итоги  с отборами  типа "равно определенному  значению". Рассмотрим  пример, когда  применение объектной  модели будет невозможно:

   1. Нужно  показать  остатки  по  складу  и фирме  в целом;

   2. Нужно получить остатки по всем  товарам, попавшим  в табличную  часть документа;

   3. нужно получить  свободный остаток по товару

Все  эти задачи  не решить эффективно посредством  объектной  за  одно обращение к БД.

Наиболее частые  случаи  использования  объектной  модели  это:

   1.Когда  прикладной  объект  надо записать  в БД

   2.Когда  прикладной  объект  надо  модифицировать в  БД (прочитать в оперативную  память, изменить  и записать измененный  в БД).

   3.Когда в алгоритме нужно  использовать  механизм  динамического чтения данных больших  массивов прикладных объектов ( суть механизма -  чтение данных  из БД блоками по  небольшому  количеству записей), можно использовать объект  манипулирования данными <СправочникВыборка.<ИмяСправочника», <ДокументВыборка.<ИмяДокумента», <РегистрНакопленияВыборка.<ИмяРегистра» и т.п.

   4.Когда данные  уже  находятся  в  оперативной  памяти  и  к ним нужно обратиться.

В  остальных  случаях применение запроса для  решения  задачи или одинаково  эффективно  с  объектной  моделью или  более  эффективно.

15) Составление схемы  запроса выполняется  по следующей методике для новичков:

Составление схемы  запроса выполняется  по следующей методике для новичков:

 1.Нарисовать эскиз выходной  таблицы запроса  с вариантом заполнения данных;

 2.Обозначить на эскизе  количество выходных полей.

 3. Обозначить для каждого поля таблицу - источник  ( по возможности консолидируя  разрезы)

 4. Обозначить дополнительное действие  в  запросе.

К  дополнительным  действиям  чаще  всего относятся:

 - фильтрация, отбор  ( когда  речь идёт об отборе  по  значению измерения виртуальной  таблицы, тогда  надо делать отбор  в  параметрах  самой  таблицы,  в остальных  случаях  - отборы  с предложением ГДЕ).

 -  свертка таблицы (СГРУППИРОВАТЬ ПО);

 -  разворачивание  таблицы  за  счет добавления  строк  с промежуточными итогами ( ИТОГИ ПО);

 -  сортировка (УПОРЯДОЧИТЬ ПО).

16) Произвольное  условие в конструкторе запросов:

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

17) Правила выполнения запросов:

С  точки зрения  техники  выполнения  запроса желательно  помнить следующие правила:

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

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

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

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

В СКД  эти параметры  устанавливаются  системой автоматически.

Когда нужно выбрать все данные, методически правильнее  использовать параметр,  который  будет установлен  в  значение Неопределено  или '00010101', что соответствует значению Неопределено  для типа данных Дата.

При написании запроса, если  в самом запросе необходимо  наложить условие  на  виртуальную  таблицу, и условие касается  отбора  по одному или нескольким значениям измерений, такое условие должно накладываться в  параметрах  виртуальной  таблицы. Такое условие выполняется  сразу  при построении виртуальной таблицы. Если наложить  условие  по измерению  после построения виртуальной  таблицы, быстродействие запроса  значительно снизится по понятным причинам.

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

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

 3. Объединение - это добавление снизу  к выходной таблице  запроса  по первому источнику  выходных  таблиц по последующим источникам, значит, в случае Объединения для каждого источника нужен  свой запрос. Это значит, что колонки  с  группировками (например, номенклатурой) должны  указываться  в качестве  выходных  полей  в каждом из этих запросов.

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

18) Управляемые блокировки:

Управляемые блокировки:

Установка полей  блокировки  для единичных значений используется  метод УстановитьЗначение  объекта  ЭлементБлокировки. Для  установки  отбора  на поля  блокировки  по множеству значений  используется поле ИсточникДанных и метод ИспользоватьИзИсточникаДанных. Источником данных  могут быть объекты  типов РезультатЗапроса, ТабличнаяЧасть, ТаблицаЗначений. В  методе ИспользоватьИзИсточникаЗначений следует указывать поле блокируемого объекта  и поле, из  которого берутся значения  для  блокировки.

19) Правила внесения изменений в структуру регистров рабочей базы:

 Правила внесения изменений в структуру регистров рабочей базы:

1. Продумать  все детали  изменений регистра (какие   будут структурные  изменения, какие документы  делают  движения  прихода, какие документы  делают движения  расхода по новым  измерениям )

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

3. Реализовать  движения прихода  по этому  регистру(регистрам)  и отладить  написанный  алгоритм  проведения  на  примере одного документа, но для  каждого вида  документов приходования при различных вариантах исходных данных.

 4. Реализовать движения расхода  по этому регистру (регистрам) или движения  сторно для  РегистровРасчета, РегистровНакопления типа Обороты  и Регистров Сведений и отладить  написанный  алгоритм  проведения  на  примере одного документа, но для  каждого вида  документов расходования при различных вариантах исходных данных.

 5. Убедиться  в корректности  работы всех программных  механизмов , которые  базируются  на этом регистре (регистрах), то есть корректность  работы  отчетов, обусловленного  проведения других документов.

Часть механизмов  базируется  на работе  с набором записей  нашего  регистра, поэтому  целесообразно посмотреть  наличие обработчиков событий ПередЗаписью и ПриЗаписи   в модуле  набора  записей регистра.  Затем для  просмотра  всех остальных механизмов  на панели инструментов Конфигурация  следует вызвать кнопку Поиск во всех текстах. В полученном  окне  проставить  условия поиска (например, Модули, Роли). Результат поиска будут отражены  внизу  в табло. Однократным нажатием на строку  результата поиск можно перейти в  объект, содержащий   данные, по которым можно оценить корректность  применения нового  механизма.

6. Затем следует перепровести все  документы, связанные  с данным регистром. В случае невозможности  проведения  старых документов  по новым  законам  придётся  реализовать  корректное  использование нужного механизма в зависимости от даты  документа.

20) Направления оптимизации алгоритма проведения:

Направления оптимизации алгоритма проведения в условиях повышенных требований к быстродействию системы можно разделить на следующие варианты:

 1.Минимизация  количества обращений  к базе.

 2.Минимизация  объема данных, обрабатываемых 

Вступайте в нашу телеграмм-группу Инфостарт

СПЕЦ по платформе подготовка к спецу

См. также

Подготовка к аттестации Программист 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

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

3050 руб.

06.07.2015    76472    127    9    

140

Подготовка к аттестации Программист Стажер 1С 8.3 Россия Абонемент ($m)

Экзамен 1С:Специалист по платформе 8.3. ВСЕ решенные билеты экзамена (Июнь 2026). В публикации собраны базы с решениями всех билетов экзаменационного сборника, выполненные в соответствии со всеми требованиями и рекомендациями учебного центра (курсы подготовки к экзамену). Решено на актуальной на 2026 каркасной конфигурации "new_carcass_8_3_25_1445".

1 стартмани

10.06.2026    2980    68    RosinMaksim    30    

9

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

Платформа 1Craft[Code] — это, по сути, профессиональный тренажёр для тех, кто хочет наконец-то перестать бояться кода 1С и начать писать его уверенно. Здесь нет скучной теории — сразу практика, сразу дело.

05.06.2026    6474    burni4    17    

16

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

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

13.01.2026    6477    707    cheshirshik    6    

20

Подготовка к аттестации Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Установим основные параметры, сделаем тексты удобочитаемыми, создадим копипастом подсистемы и группы команд, настроим консоль запросов.

07.07.2025    15523    cargobird    15    

15

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

Источники информации для подготовки к Эксперту.

18.12.2024    19681    GraVVitY    62    

78
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Новиков 292 25.10.16 10:30 Сейчас в теме
Спасибо. Во истину титанова работа, даже по одному написанию!
user614825_umkavint; +1 Ответить
2. NN2P 423 25.10.16 10:54 Сейчас в теме
(1) Новиков,
Спасибо, продолжаю подготовку к Спецу - в планах расширять публикацию по мере получения новой актуальной инф- ии.
user614825_umkavint; cleaner_it; +2 Ответить
3. Diversus 2340 25.10.16 12:58 Сейчас в теме
Отличная работа проделана!

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

Надо так:
Сообщение.Текст = СтрШаблон(НСтр("ru = 'Не хватает %1 в количестве %2'"), Выборка.Представление, Число(Выборка.Количество - Выборка.КоличествоОстаток))
linkov; Saint13; Glebis; NN2P; +4 Ответить
4. NN2P 423 25.10.16 13:48 Сейчас в теме
(3) Diversus, да, так правильнее. Спасибо.
5. TODD22 20 25.10.16 14:13 Сейчас в теме
(3) Diversus, Это требование экзамена или так просто правильно?
6. Diversus 2340 25.10.16 14:28 Сейчас в теме
(5) TODD22, это требование из Системы стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8.
Скорее всего и для экзамена это обязательно, иначе что это за экзамен, в котором не требуют выполнения системы стандартов рекомендованных 1С :)
1. Если в модулях конфигурации встречаются строки, предназначенные для пользовательского интерфейса (сообщения пользователю, надписи в формах, названия и подсказки команд и т.п.) необходимо обеспечить возможность локализации таких строк.

А СтрШаблон - это платформенная реализация СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку из БСП. Ее можно использовать, а можно нет.
7. TODD22 20 25.10.16 14:30 Сейчас в теме
(6) Diversus, Экзамен не проверяет знание стандартов и методик разработки. Он проверяет знание механизмов платформы.
Aleksandr_prof; G_112708749323588293243; CSiER; +3 Ответить
8. Diversus 2340 25.10.16 14:37 Сейчас в теме
(7) TODD22, поэтому я и написал, "скорее всего". В любом случае хуже от такого написания не будет.
9. TODD22 20 25.10.16 14:42 Сейчас в теме
(8) Diversus, Хуже не будет. Но будет ли лучше?
На экзамене не так много времени. И лишнее там писать то же не имеет смысла. На экзамене надо решить задачу в первую очередь так как от тебя ждёт это экзаменатор. Не более того....
Rustam10; NN2P; dgolovanov; CSiER; +4 Ответить
10. LexSeIch 212 27.10.16 09:07 Сейчас в теме
Большое человеческое спасибо!
11. Viktor_Ermakov 415 21.11.16 22:28 Сейчас в теме
У меня такой вопрос, вот сейчас я знаю можно сдавать только на каркасной конфигурации. Поэтому вопрос: в каркасной в документах есть реквизит "СуммаПоДокументу" и в ТЧ его есть "Цена". Если в условии явно не указано об их использовании, их удалять можно, или нельзя, и нужно использовать по любому? Спасибо!
12. NN2P 423 21.11.16 22:42 Сейчас в теме
(11) TEENAGER1984, Можно удалять
13. Viktor_Ermakov 415 22.11.16 11:06 Сейчас в теме
(12) NN2P, Спасибо Михаил, а еще такой вопрос, можно ли пользоваться конструктором движений в приходной накладной? Или все же лучше ВСЕГДА делать запрос?
14. NN2P 423 22.11.16 11:18 Сейчас в теме
(13) TEENAGER1984, можно конструктором, но я сторонник запросов, т.к. запрос позволяет избавиться от дублей номенклатуры в тч документа.А именно:

Прима 5шт. 100 руб.
Беломор 10 шт. 500 руб.
Прима 5 шт. 50 руб.

если писать запросом в РН с группировкой по номре создадут 2 записи, а конструктором 3. При малых количествах записей в тч - это не проблема. При больших , на мой взгляд, запрос предпочтительнее.
15. Viktor_Ermakov 415 22.11.16 11:51 Сейчас в теме
Теперь вопрос по 11 пункту тогда, если мы выбираем в запросе номер строки (что бы выдать сообщение как в п.11), то товары повторяющиеся уже не сгруппируются, а будут так же 3мя строками записываться в РН. Как правильнее получать номер строки тогда, что бы группировка все же проходила, или уже без группировки?
16. NN2P 423 22.11.16 13:39 Сейчас в теме
(15) TEENAGER1984, в приходной накладной , если есть необходимость получать номер строки, выходит, что получать записи запросом нет смысла, т.к. группировать нечего
17. v3rter 22.11.16 15:11 Сейчас в теме
Плюсану, хоть и втайне надеюсь, что жизнь не заставит такое сдавать )
18. csv 21.02.17 14:56 Сейчас в теме
Плюсану, за проделанную работу. Спасибо.

Возможно не внимательно просмотрел, не смог найти ответ на вопрос "Правильное наложение блокировки на регистр бухгалтерии с установкой значения по субконто (или виду субконто)?".
Уточню вопрос, как правильно указывать субконто "Субконто1" или "ПланыВидовХарактеристик.ВидыСубконто.Номенклатура"?
20. NN2P 423 28.02.17 17:53 Сейчас в теме
(18) Насколько знаю правильнее : ПланыВидовХарактеристик.ВидыСубконто.Номенклатура.
19. WasiliyMay 8 27.02.17 11:16 Сейчас в теме
От различных "защит от дурака" лучше вообще отказаться. Баллов за это не накинут, а не успеть что то доделать в отведенное время можно запросто.
mickey.1cx; NN2P; +2 Ответить
21. nytlenc 07.01.18 06:50 Сейчас в теме
"Активностью поводок следует управлять из модуля документа РучнаяОперация .Когда пользователь помечает этот документ на удаление активность движений, подчиненных данному документу отключается. При снятии пометки удаления активность можно будет снова включить.В процедуре ПередЗаписью модуля объекта РучнаяОперация необходимо прописать код:

Если НЕ ЭтоНовый() И Ссылка.ПометкаУдаления <> ПометкаУдаления Тогда

Движения.Проводки.Записывать = Истина;
Движения.Проводки.Прочитать();
Движения.Проводки.УстановитьАктивность(НЕ ПометкаУдаления); 

КонецЕсли;


Это плохой совет. Нужно делать это в обработчике "ПриЗаписи" вот так:

Если НЕ ЭтоНовый() И Ссылка.ПометкаУдаления <> ПометкаУдаления Тогда

Движения.Проводки.Записывать = Истина;
Движения.Проводки.Прочитать();
Движения.Проводки.УстановитьАктивность(НЕ ПометкаУдаления); 
Движения.Записать();

КонецЕсли;"

Если это будет прописано "Перд записью" то будут восстанавливаться предыдущие движения документа. Например у вас в форме 2 строки. Вы одну удаляете. Записываете документ. Упсс.... А там снова две строки! Потому что движения не были записаны, и повторно прочитаны из базы до того как они были изменены документом.
22. NN2P 423 07.01.18 13:07 Сейчас в теме
(21)
"Активностью поводок следует управлять из модуля документа РучнаяОперация .Когда пользователь помечает этот документ на удаление активность движений, подчиненных данному документу отключается. При снятии пометки удаления активность можно будет снова включить.В процедуре ПередЗаписью модуля объекта РучнаяОперация необходимо прописать код:

Если НЕ ЭтоНовый() И Ссылка.ПометкаУдаления <> ПометкаУдаления Тогда

Движения.Проводки.Записывать = Истина;
Движения.Проводки.Прочитать();
Движения.Проводки.УстановитьАктивность(НЕ ПометкаУдаления);

КонецЕсли;"

Это плохой совет. Нужно делать это в обработчике "ПриЗаписи" вот так:

"Если НЕ ЭтоНовый() И Ссылка.ПометкаУдаления <> ПометкаУдаления Тогда

Движения.Проводки.Записывать = Истина;
Движения.Проводки.Прочитать();
Движения.Проводки.УстановитьАктивность(НЕ ПометкаУдаления);
Движения.Записать();

КонецЕсли;"

Если это будет прописано "Перд записью" то будут восстанавливаться предыдущие движения документа. Например у вас в форме 2 строки. Вы одну удаляете. Записываете документ. Упсс.... А там снова две строки! Потому что движения не были записаны, и повторно прочитаны из базы до того как они были изменены документом.
Показать



Александр, спасибо за комментарий.
А теперь скажите, Вы серьёзно?

Рекомендую перечитать книгу "Реализация прикладных задач в системе "1С:Предприятие" 8.2", стр. 475-477.
24. nytlenc 07.01.18 16:56 Сейчас в теме
(22)
Александр, спасибо за комментарий.
А теперь скажите, Вы серьёзно?


Нет не серьёзно. Спасибо за рекомендацию. Перечитал, проанализировал код. Все дело в условии "Ссылка.ПометкаУдаления <> ПометкаУдаления". Если его не использовать тогда перед записью документа восстанавливаются предыдущие движения. А в конструкции:

(22)

Если НЕ ЭтоНовый() И Ссылка.ПометкаУдаления <> ПометкаУдаления Тогда

Движения.Проводки.Записывать = Истина;
Движения.Проводки.Прочитать();
Движения.Проводки.УстановитьАктивность(НЕ ПометкаУдаления);

КонецЕсли;


код действительно рабочий и более того оптимален. Т.к. не производится повторной записи, в случае если это делать в обработчике "При записи".
23. SergMasss 10 07.01.18 16:00 Сейчас в теме
25. avgyr77 08.08.18 11:12 Сейчас в теме
Бред написан многократно разбивать оклад не нужно.

он может храниться в рег сведений и там изменяться .

и нех такие запросы катать
26. NN2P 423 08.08.18 16:13 Сейчас в теме
(25)
Спасибо за критику.
Приведи, пожалуйста, более подробный пример правильного решения.
27. SergeySemendyaev 20.09.18 10:14 Сейчас в теме
Каким образом может работать следующая строка кода?

Проводки = ОбъектКопирования.Движения.Проводки.Прочитать();
28. NN2P 423 21.09.18 12:23 Сейчас в теме
(27) Можете прокомментировать, что Вас смутило?
29. TABEZI1234 23.01.19 14:41 Сейчас в теме
Вот это обьъем работы! Спасибо, мне понадобится скоро
30. Светлый ум 508 27.03.23 07:28 Сейчас в теме
+ 1
Это мощь и системный подход, для сдачи экзамена специалист большая подмога.
Для отправки сообщения требуется регистрация/авторизация