Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С

Публикация № 940251

Разработка - Практика программирования

режим автоматических и управляемых блокировок разделение итогов уровни изоляции транзакций Предприятие 8.3 УТ 11 КА 2 ЕРП

129
Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

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

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

И так, поехали…

Сперва напишу про уровни изоляции транзакций, кратко рассмотрю только те уровни, которые имеют отношение к данной статье. 

 

Уровни изоляции транзакций

Read committed (чтение завершенных) - разрешено чтение данных в транзакции, изменения по которым были завершены всеми остальными транзакциями. По умолчанию используется для большинства баз данных.

Read committed Snapshot (версионирование данных) - разрешено чтение старой версии данных, изменения по которым не завершены другими транзакциями. Штатно поддерживается базами данных: PostgreSQL и Oracle. Начиная с версии платформы 1С 8.3 реализован для работы с базами данных: MSSQL.

Repeatable read (повторяемое чтение) – запрет на изменение записей в транзакции, которые уже были считаны ранее в рамках остальных транзакций.

По поводу изоляции транзакций пока все, далее хочется сказать пару слов про механизм разделения итогов в регистрах накопления.

 

Разделение итогов регистров накопления

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

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

Поехали дальше…   

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

 

Механизмы контроля остатков в типовых конфигурациях 1С

Старая схема, далее OLD – формируется запрос к базе данных для выполнения контроля свободных остатков, в случае положительного решения, формируется движение по регистру. На данный момент применяется в Бухгалтерии 3.0 и в некоторых алгоритмах УТ 11, КА 2, ЕРП 2.

Недостатки:

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

Новая схема, далее NEW – выполняется движение по регистру, затем проверяется наличие отрицательных остатков, в случае их наличия, операция откатывается. На данный момент применяется в УТ 11, КА 2, ЕРП 2.

Преимущества:

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

Недостатки:

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

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

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

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

 

Режим автоматических блокировок

В данном случае используется описанный выше режим изоляции транзакций: Repeatable read.

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

Для исключения взаимоблокировок при проведении документов с контролем остатков - OLD применяется конструкция языка запросов «ДЛЯ ИЗМЕНЕНИЯ», позволяющая при первом чтении данных в транзакции наложить на эти данные не разделяемую блокировку на чтение, а блокировку обновления. Соответственно, в другой транзакции уже будет невозможно выполнить подобную процедуру, так как наложить на одни и те же данные две блокировки обновления из разных транзакций нельзя.

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

Примечание: В случае работы с файловой базой и с PpostgreSQL, блокировка накладывается целиком на всю таблицу.

Пример:

ВЫБРАТЬ ОстаткиТоваров.Номенклатура,
ОстаткиТоваров.КоличествоОстаток КАК Количество
ИЗ РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваров
ДЛЯ ИЗМЕНЕНИЯ

Использовать режим контроля остатков - NEW совместно с автоматическим режимом блокировок имеет смысл только для регистров без разделения итогов, в этом случае, никаких дополнительных действий делать не нужно. При использовании регистров с разделением итогов может возникнуть deadlock на чтении данных, если запись в регистр производилась одновременно, и каким-то образом решить данную проблему не получится. 

 

Режим управляемых блокировок

В данном случае, применяется режимы изоляции транзакций: Read committed и Read committed Snapshot.

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

Пример:

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

Использование режима контроля остатков NEW:

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

В случае использования регистров накопления с разделением итогов (по умолчанию к конфигураторе создаются регистры именно с данным флагом) можно получить следующие негативные ситуации:

  • Без режима версионирования (MS SQL и 1С 8.2) – получим взаимоблокировку при попытке чтения данных, если запись в двух транзакциях была выполнена одновременно. При записи данных блокировка не будет возникать, так как используются разные строки СУБД (разделение итогов)
  • С режимом версионирования Snapshot (postgresql, oracle или 1С 8.3) – блокировка возникать не будет, но будут появляться отрицательные остатки, так как контроль будет выполнен без учета всех не завершенных транзакций.

Для исключения подобной ситуации необходимо перед записью в регистр установить флаг набора записей: БЛОКИРОВАТЬ ДЛЯ ИЗМЕНЕНИЯ. Данная конструкция дает команду при записи накладывать исключительную блокировку на записи таблицы остатков регистра без учета разделителя итогов, по своей сути, она просто напросто временно отключает разделение итогов для регистра накопления.

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

Пример:

НаборЗаписей. БлокироватьДляИзменения = Истина;

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

Если что-то упустил и в чем-то был не точен, буду руд увидеть это в комментариях к статье.  

Отдельное огромное спасибо, если отметите статью звездочкой, так как не что так не мотивирует на написание новых статей, как Ваше одобрение J

129

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

Комментарии
Избранное Подписка Сортировка: Древо
1. ZLENKO 382 10.11.18 17:09 Сейчас в теме
Какие полезные на практике выводы можно сделать на основе этой информации?
В статье нет рецептов применения этих знаний, а сами по себе они интересны но ценности не представляют.
IVC_goal; Vedishchev; YLioY; HystriX; +4 1 Ответить
2. ids79 4453 10.11.18 22:24 Сейчас в теме
Владимир, Вы правы, примеров практичскго применения в статье нет.
Но я и не ставил такую задачу, я планировал кратко и тезисно изложить тот обширный материал, который присутствует в сети по данному вопросу, чтобы при прочтении сформировалось четкое понимание в целом.
Насколько это получилось, судить Вам :))
pavelpribytkin96; Александр4023512; SmArtist; VVi3ard; Vedishchev; +5 Ответить
3. spectre1978 50 11.11.18 12:57 Сейчас в теме
Действительно, довольно неплохо собрано в кучку. А вот ИС сегодня глючит. Захотел поставить звездочку - не ставится. Тыкал-тыкал, и тут оно раз - и поставило сразу 8 звезд :)) Я было решил, что вам повезло, но после обновления страницы из восьми все же осталась только одна.
Vedishchev; +1 Ответить
4. triviumfan 12 11.11.18 13:03 Сейчас в теме
может возникнуть deadlovk
описка
6. ids79 4453 11.11.18 19:31 Сейчас в теме
5. bulpi 158 11.11.18 16:21 Сейчас в теме
Непонятно, в чем преимущества новой схемы контроля остатков перед старой. В обоих случаях нужен запрос на чтение и запись в регистр, меняется только порядок этих действий.

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


А какая разница, пустой результат. или не пустой ? Все равно выполнить то его надо.

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


Ну так потом придется заблокировать. А если не блокировать, то риск точно такой же, как и в старой схеме. Например, в тот же момент может быть проведен приход, и остатки уже не отрицательные.
7. ids79 4453 11.11.18 19:40 Сейчас в теме
(5)Добрый вечер.

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

"Ну так потом придется заблокировать. А если не блокировать, то риск точно такой же, как и в старой схеме"
Блокировать специально как раз не нужно, это делает сама СУБД при изменении данных в таблице итогов регистра накопления в момент записи движений. Нужно только отключить разделение итогов, если разделение включено для регистра, для этого и флаг: ЗаблокироватьДляИзменения.
VVi3ard; acanta; +2 Ответить
8. bulpi 158 11.11.18 23:30 Сейчас в теме
(7)
Запрос, не возвращающий записей всегда будет выполняться быстрее.


???? Да ну ? А Вы проверяли ? ИМХО, скорость выполнения запроса зависит от целой кучи факторов, среди которых кол-во возвращаемых записей на последнем месте.

Блокировать специально как раз не нужно, это делает сама СУБД


Какая разница, я или СУБД ? Я не понимаю, почему от перестановки слагаемых должна измениться сумма.
9. bulpi 158 12.11.18 00:57 Сейчас в теме
(7)
ИМХО,
преимущества новой схемы не в этом. А в том, что раньше нужно было удалять движения уже проведенного документа перед повторным проведением, получать в запросе данные (контроль остатков, например), а затем записывать новые наборы записей. Это 3 действия, 2 из которых - запись, т.е. очень затратные.
В новой схеме движения не удаляются перед проведением, а сразу записываются новые. Потом проверяются в запросе результаты. Если все плохо, транзакция откатывается. Если все хорошо ( в большинстве случаев), то , получается 2 действия вместо 3, причем убрано 1 действие записи, т.е. очень затратное.
wowik; Terve!R; ids79; +3 Ответить
10. CSiER 28 12.11.18 03:05 Сейчас в теме
(9) про преимущества хорошо написано здесь (блок "Преимущества контроля остатков по новой методике").
14. bulpi 158 12.11.18 13:33 Сейчас в теме
(10)
Хорошо то хорошо, но есть нюансы :)
Написано так :
Запрос, получающий данные по отрицательным остаткам, обращается только к одной таблице – нет необходимости делать левое соединение с данными документа и применять функцию «ЕСТЬNULL()»


Ну да . Сначала так написали модуль, а потом сами же его критикуют. Никто не мешает написать в старой схеме абсолютно те же 2 запроса, что и в новой (это вместо одного! А может, все таки 1 запрос лучше?)

Так что в чистом остатке остается 1 несомненное преимущество, о котором я написал.
17. ids79 4453 13.11.18 10:33 Сейчас в теме
(14)
Так что в чистом остатке остается 1 несомненное преимущество, о котором я написал.

Не могу не согласиться. Внесу исправление в статью
21. CSiER 28 13.11.18 14:16 Сейчас в теме
(14) думаю, что один запрос лучше как в плане быстродействия, так и в плане простоты кода.
11. ids79 4453 12.11.18 10:37 Сейчас в теме
(9) Добрый день
Да Вы правы, упоустил этот момент. Наверно он действительно является самым значимым.
Но, в любом случае, запрос, который не возвращает ни одной записи причем без необходимости соединения с таблицей документа - будет выполняться скорее всего быстрее, чем запрос на получения остатков по старой методике контроля.
13. bulpi 158 12.11.18 13:20 Сейчас в теме
(11)
Попробуйте такую простую вещь. Создайте таблицу с миллионом записей из чисел от 1 до 1000000. Запустите 2 запроса, один из который выбирает по условию значение=0 (пустой результат), а второй по условию значение=1 (непустой результат).
И "без необходимости соединения" - это о чем ? Запросы в первой схеме и во второй одинаковые.
15. ids79 4453 12.11.18 13:37 Сейчас в теме
(13)
Запросы в первой схеме и во второй одинаковые.

В новой схеме не нужно соединять запрос к регистру с запросом к ТЧ документа. В старой нужно.
35. CSiER 28 18.11.18 10:41 Сейчас в теме
(9) ещё один момент: с новой методикой уменьшается время блокировки таблиц в транзакции => меньше ожидание на блокировках => ускорение проведения.
andron77777; +1 Ответить
12. T_Guest 12.11.18 12:52 Сейчас в теме
А можете пояснить про режим разделения итогов и новой схемой контроля остатков.
Я правильно понял: разделение итогов будет нормально работать только если система 1С 8.3 + MSSQL?
Ведь если стоит Postgre, то разделение итогов бессмысленно поскольку в новом механизме контроля придется писать "НаборЗаписей. БлокироватьДляИзменения = Истина;" а это отключит режим разделения на момент записи.
18. kolya_tlt 11 13.11.18 10:42 Сейчас в теме
(12) СУБД тут ни при чем, как в случае с разделением итогов, так и схеме контроля остатков
19. ids79 4453 13.11.18 10:52 Сейчас в теме
(12)
Добрый день.
Я не совсем Вас понял.
В версии 1С 8.3 работа с MSSQL поддерживает версионирование, аналогично PostgreSQL.
Так что для 8.3 разницы не будет.

(12)
разделение итогов бессмысленно поскольку в новом механизме контроля придется писать "НаборЗаписей. БлокироватьДляИзменения = Истина;

Вы правы в какой-то степени, но не совсем. Существуют еще движения по приходу или расходу, в которых по логике программы не требуется контролировать остатки. Соответственно в таких движениях разделение итогов отключено не будет.
Также в конфигурации есть возможность отключения контроля остатков, в этом случае разделение итогов также будет ускорять работу. Вот здесь подробно описано про разделение итогов, почитайте.
16. kolya_tlt 11 13.11.18 10:28 Сейчас в теме
Дмитрий Гончаров бы вас поправил и сказал, что новая методика - это не только запись и контроль отрицательного результата.
EMelihoff; +1 Ответить
20. ids79 4453 13.11.18 11:04 Сейчас в теме
(16)Добрый день.
Конечно не только.
Здесь я все упрощаю, чтобы описать в рамках одной статьи
22. Vovan1975 14 14.11.18 11:34 Сейчас в теме
интересно почему нельзя получить остатки на момент времени ДО документа, и посчитать их с новыми движениями документа и таким образом сразу узнать, будет ли отрицательное значение?
23. ids79 4453 14.11.18 12:04 Сейчас в теме
Добрый день, Владимир.
Если я правильно Вас понял, Вы, по сути, предлагаете старый вариант контроля...
Но в этом случае придеться удалять существующие записи до получения остатков, чтобы они не попали в выборку, например при изменении времени проведения документа.
Получаем основной минус старого режима контроля.
24. Vovan1975 14 14.11.18 12:08 Сейчас в теме
(23) неправильно.

Алгоритм такой
1)Получаете остатки на момент времени до (новых) движений документа.
2)Получаете старые движения документа
3) Если старые движение "входят" в остатки (ну например пользователь изменил дату документа) - исключаете их из остатков
4) Добавляете к остаткам новые движения
5)Проверяете результат.


В итоге 2 запроса на чтение к бд.
25. acanta 80 14.11.18 12:10 Сейчас в теме
(24) в 8ке нет момента времени до новых движений документа!!
26. Vovan1975 14 14.11.18 12:25 Сейчас в теме
(25) движения формируются исходя из даты документа или другого реквизита документа. Ничего не мешает определить эту дату для новых движений.
27. HomeInc 15.11.18 07:31 Сейчас в теме
(24) Операция чтения остатков используя границу (до проведения документа) намного затратнее, чем получение самых последних остатков
28. Vovan1975 14 15.11.18 11:46 Сейчас в теме
(27) а при чем тут получение самых последних остатков? В так называемой новой методике один фиг получение остатков через границу документа(уже после записи движений), то есть получается и там и там одно и тоже.
29. ids79 4453 15.11.18 12:02 Сейчас в теме
(28)
В так называемой новой методике один фиг получение остатков через границу документа

Нет, в новой методике получение остатков происходит на дату дату актуальности.
30. Vovan1975 14 15.11.18 12:37 Сейчас в теме
(29) неа, неверно.

https://xn----1-bedvffifm4g.xn--p1ai/articles/2017-02-12-two-methods-for-inventory-check/

Обратите внимание, как передается момент времени – используется тип данных «Граница». Остатки нужно получить на момент времени сразу ПОСЛЕ текущего документа. Можно ли было получить остатки без границы, например, прибавив к дате документа 1 секунду? Нет! Ведь в одной секунде может быть большое число документов. Поэтому единственный правильный вариант – использовать вид границы «Включая».
31. Vovan1975 14 15.11.18 12:58 Сейчас в теме
(30) кстати насчет большого числа документов - в данном случае момент времении вообще выглядит ненужной сущьностью, по той простой причине, что им нельзя управлять. То есть нельзя всунуть документ между двумя другими документами.
32. ids79 4453 15.11.18 13:28 Сейчас в теме
(30) У указанном Вами примере, действительно так сделано.
Я же говорю про типовые конфигурации, там на дату актуальности.
По организациям также еще и на конец кажрого месяца следующего за проводимым документм, но это отдельная песня.
33. Vovan1975 14 15.11.18 13:41 Сейчас в теме
(32) это странно слышать, поскольку отсутсвие отрицательных итогов в актуальных еще не гарантирует их отстутсвие по времени между проводимым документом и таблицей актуальных итогов
34. Vovan1975 14 15.11.18 13:44 Сейчас в теме
+ (33) при такой схеме можно также вычитать старые движения из остатков, полученных из таблицы актуальных остатков. Хотя лично мне такая метода представляется фигней.
36. acanta 80 18.11.18 11:00 Сейчас в теме
1с Ники с этой 8кой уперлись в блокировки при росте объема и интенсивности еще 7ки Не придумали ничего лучше чем убрать полный журнал. Мелкие разработчики дробили файлы на какие то периоды в рамках системы. Период хранения предполагал разные таблицы для каждого периода, неважно, год,это или день. Отсюда, именно из архитектуры хранения вытекает невозможность редактировать задним числом и необходимость сторно. Ужасная конечно, но если необходимость осознанная, то это уже свобода.
37. acanta 80 18.11.18 11:08 Сейчас в теме
Как вариант вместо обрезания в конфигураторе переименовывать объемные регистры и создавать новые аналогичные. А отчеты , которые требуют старых данных дописать обьедиением таблиц. Этого
в дбф не стали делать. Тот же период хранения итогов подразумевает разделение на уровне таблиц, а не индекса или обрезанной базы данных.
38. mrf 16.01.19 18:23 Сейчас в теме
Т.е. если по регистру нужен контроль остатка, нужно отключить использования разделения итогов как вредное?
39. ids79 4453 16.01.19 19:46 Сейчас в теме
(38)Или отключить, или использовать НаборЗаписей.БлокироватьДляИзменения = Истина;
По сути, это тоже отключение разделения данных, но для конкретного документа.
40. EMelihoff 13.02.19 08:44 Сейчас в теме
Лучше чем тут ИТС нигде, про блокировки не читал.
Оставьте свое сообщение

См. также

Полезные процедуры и функции для программиста 160

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Практика программирования Универсальные функции

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

07.10.2019    12489    HostHost    23       

Базовый курс для начинающих 1С-программистов. Пятый поток. Онлайн-курс с 12 февраля по 15 апреля 2020 г. Промо

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

4500/9500 рублей

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Агрегатные функции СКД, о которых мало кто знает 356

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    16474    ids79    44       

Отслеживание выполнения фонового задания 143

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции Разработка

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    13543    ids79    16       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив 265

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    19458    ids79    31       

Перенос данных КА 1.1 => ERP 2 (ЕРП) (обработка переноса документов, остатков и справочной информации из "1С:Комплексная автоматизация, ред. 1.1" в "1С:ERP Управление предприятием, ред 2"). Обновлен до КА 1.1.115.х и ERP 2.4.10.х Промо

Обработка позволяет переносить из КА 1.1 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления в случае выхода новых релизов конфигураций 1С.

29700 руб.

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты 143

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    17418    ids79    8       

Обработчики событий при записи объектов. Зачем и что за чем? 216

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта.... Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

25.07.2019    15602    4    AlbinaAAA    24       

Онлайн-курс "Технология выполнения проектов ERP-класса – процессный подход". Третий поток. Курс проходит с 21 января по 18 марта 2020 года. Промо

Курс разработан Внедренческим центром «Раздолье». Курс предназначен для подготовки аналитиков, архитекторов и руководителей проектов автоматизации процессов управления с использованием комплексных ИТ-систем (1С:ERP, 1С:УХ, 1С:КА, 1С:УТ). В основе курса лежит методика применения процессного подхода.

9000 рублей

Управление качеством кода 140

Статья Программист Руководитель проекта Нет файла v8 Бесплатно (free) Математика и алгоритмы Рефакторинг и качество кода

О SonarQube, АПК, EDT. Какие преимущества дает их использование. Для каких команд подходит.

22.07.2019    9461    Stepa86    33       

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ 156

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Инструментарий разработчика Практика программирования

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    14150    ids79    27       

Перенос документов и справочников ERP 2 / КА 2 / УТ 11 => БП 3.0 Промо

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

19700 руб.

Регистры сведений. За кулисами 129

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    11326    YPermitin    12       

"Меньше копипаста!", или как Вася универсальную процедуру писал 184

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    10122    SeiOkami    49       

С 2020 года сервис «Продление поддержки конфигурации 1С:УПП» подорожает вдвое Промо

Успейте продлить поддержку УПП до повышения цен! Фирма «1С» предупредила об изменении цен на сервис «Продление поддержки конфигурации "1С:Управление производственным предприятием"». С 1 января 2020 года сервис подорожает в два раза.

Создание отчетов с помощью СКД - основные понятия и элементы 219

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    24488    ids79    17       

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017 179

Статья Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Разработка

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    13888    dmurk    134       

Готовые переносы данных из различных конфигураций 1C Промо

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

Регистры накопления. Структура хранения в базе данных 178

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

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

16.05.2019    21990    YPermitin    27       

Выполнение внешней обработки в фоновом задании 149

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    13842    Eret1k    23       

Базовый курс по разработке мобильных 1C-приложений для Android-устройств. Третий поток. Онлайн-интенсив с 11 февраля по 05 марта 2020 г. Промо

Данный онлайн-курс предусматривает изучение базовых принципов создания приложений для операционной системы Android, работающих на мобильной платформе “1С:Предприятие”. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие” при разработке прикладных решений для “обычных” компьютеров, но пока ещё не занимался разработкой 1С-приложений, предназначенных для работы на мобильных устройствах.

7500 рублей

Выгрузка документа по условию 5

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

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

25.04.2019    7964    m-rv    2       

Как прикрутить ГУИД к регистру сведений 23

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

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

16.04.2019    10509    m-rv    16       

Перенос документов, остатков и справочников КА 1.1 => КА 2 / УТ 11. Обновлено до КА 2.4.10.х и УТ 11.4.10.х! Промо

Более 130 компаний выполнили переход на КА 2 или УТ 11 с помощью нашей разработки! Позволяет перенести не только остатки и справочники (как типовая обработка), но и документы за нужный период времени. Предоставляем техподдержку, оперативно исправляем замечания, выпускаем обновления при выходе новых релизов программ 1С. Вы можете проверить разработку до покупки: сделаем бесплатный тестовый перенос из вашей базы КА 1.1 и предоставим доступ к базе-результату через веб-клиент!

29700 руб.

О расширениях замолвите слово... 195

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования Разработка

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    19206    ellavs    125       

Git-репозитории для 1С-кода (опыт использования при небольших проектах) 202

Статья Программист Стажер Нет файла v8 Windows Бесплатно (free) Практика программирования Разработка

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    15721    ellavs    83       

Перенос данных БП 2.0 => УТ 11 / КА 2 / ERP 2 (перенос остатков, документов и справочников из "1С:Бухгалтерия предприятия 8", ред. 2.0 в "1С:Управление торговлей 8", ред.11 / КА 2 / ERP 2). Обновлено до УТ 11.4.10.х, КА 2.4.10.х, ERP 2.4.10.х! Промо

Перенос позволяет загрузить в УТ 11 / КА 2 / ERP 2 документы за выбранный период, справочную информацию и остатки по счетам бух. учета. Переносятся остатки денежных средств, взаиморасчетов, остатки товаров и материалов на складах. Переносятся девятнадцать основных видов документов за выбранный период и вся нормативно-справочная информация. Есть фильтр по организации. Если нужно переносить что-то дополнительно, то обычно бесплатно дорабатываю правила (перед покупкой согласуйте необходимые доработки).

29700 руб.

Трюки с внешними источниками данных 167

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    16794    YPermitin    53       

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS) 174

Статья Программист Нет файла v8 v8::Права Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем) Роли и права

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    19759    ids79    9       

Перенос данных УТ 10.3 => УТ 11 / КА 2 / ERP 2 (ЕРП 2) (документы, остатки и справочная информация из "1С:Управление торговлей, ред. 10.3" в УТ 11 / КА 2 / ERP 2). Обновлен до УТ 10.3.56.х, УТ 11.4.10.х, КА 2.4.10.х и ERP 2.4.10.х! Промо

Уже более 100 компаний приобрели перенос и выполнили переход на УТ 11 / КА 2 / ERP 2 с помощью нашей разработки! Обработка перехода с УТ 10.3 на УТ 11 / КА 2 / ERP 2 позволяет перенести не только остатки на указанную дату (как типовой перенос), но и все возможные документы за выбранный период. При выходе новых релизов этих программ оперативно выпускаем обновление обработки. Предоставляем техническую поддержку. Можем сделать бесплатный тестовый перенос!

29700 руб.

EnterpriseData – часть 2. Процесс выгрузки данных 128

Статья Программист Нет файла v8 v8::УФ Россия Бесплатно (free) Практика программирования Обмен через XML

Основные этапы выгрузки данных через ED, обработчики событий выгрузки, правила обработки данных, правила конвертации объектов, конвертация свойств первого и второго этапов, процедуры БСП, используемые при выгрузке данных, структура «КомпонентыОбмена».

26.12.2018    15508    ids79    27