Управляемые блокировки - для подготовки к экзамену Специалист 1С

05.08.19

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

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

Скачать исходный код

Наименование Файл Версия Размер
Демо-база управляемые блокировки - для подготовки к экзамену Специалист 1С:
.dt 42,19Kb
8
.dt 1.0.0.1 42,19Kb 8 Скачать

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

По старым стандартам 1С управляемые блокировки делались таким образом:

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

 

По новым стандартам управляемые блокировки, нужно делать так:

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

 

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

 

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

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

Демо-база содержит заполненный справочник номенклатура, свойства. А также несколько документов (приходная накладная, расходные накладные нескольких типов). Рекомендуется запуск с помощью отладчика и сразу несколько сеансов в режиме 1С предприятия, для тестирования режима блокировки.

Тестировалось на платформе: 1С:Предприятие 8.3 (8.3.12.1595).

демонстрационная база экзамен специалист подготовка

См. также

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

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

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

1800 руб.

11.02.2014    74351    77    14    

169

Экзамен "1С:Специалист" по платформе "1С:Предприятие 8.3". Полные и правильные решения билетов из сборника 2022

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

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

10 стартмани

07.05.2024    4732    35    user1988637    8    

27

Экзамен "1С:Специалист-консультант" по внедрению подсистем управленческого учета в 1С:ERP. Полные и правильные решения билетов

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

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

10 стартмани

08.04.2024    1418    15    user1988637    0    

11

Программист 1С: как начать с нуля с минимальными затратами

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

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

18.03.2024    3423    AlOkt    4    

6

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

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

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

14.03.2024    11496    PROSTO-1C    46    

87

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

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

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

04.02.2024    6490    shuhratsj    16    

76

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

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

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

29.01.2024    14362    shuhratsj    103    

157

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

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

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

5 стартмани

01.12.2023    1629    19    Ocherkcons    0    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dminrii.butorin 05.08.19 20:27 Сейчас в теме
А в чем преимущество нового метода перед старым?
4. astracrypt 75 06.08.19 05:41 Сейчас в теме
(1) Это только в фирме 1С знают
2. avbolshakov 06.08.19 04:53 Сейчас в теме
Вы пишите, что по старым стандартам делалось вот так, а по новым - вот так. Из статьи можно сделать вывод, что старые стандарты устарели , но ведь "старым способом" только и получится сделать блокировку когда данных в документе не достаточно для записи движений. Например, когда нам нужно посчитать себестоимость списания. Так?
3. astracrypt 75 06.08.19 05:18 Сейчас в теме
(2) Если будете использовать старый метод, когда можно использовать новый, то можно получить минусовые баллы на экзамене "Специалист 1С"
EMelihoff; +1 Ответить
5. danjer74 3 06.08.19 07:19 Сейчас в теме
(3)Полностью поддерживаю. Не МОЖНО а ОДНОЗНАЧНО :)
6. Sloth 382 12.08.19 18:12 Сейчас в теме
А зачем во втором примере дважды делается?
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;

И там же зачем Записать() после Очистить()?
EMelihoff; +1 Ответить
7. Leon75 09.12.19 00:33 Сейчас в теме
Запутать новичков. Кто ж в отладчике увидит, что свойство после записи пустого набора не изменилось.
Оставьте свое сообщение