Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Правильно ли я устанавливаю блокировку?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
bilateral
Решаю задачу из решебника "Спец платформа". Задача 1.8

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

Вот блокировка для документа "Расходная".

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


Вопрос: Съест ли блокировка в качестве источника массив?

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


Подскажите правильно ли так блокировать и где есть возможность увидеть результат блокировки?
Vofka
Цитата(bilateral @ 11.06.13, 17:28) необходимо зарегистрироваться для просмотра ссылки
Съест ли блокировка в качестве источника массив?

Нет.
bilateral
А как правильно заблокировать два значения?
Vofka
В качестве источника данных надо использовать таблицу значений с 2 колонками "Номенклатура" и "Отдел".
bilateral
Цитата(Vofka @ 11.06.13, 21:27) необходимо зарегистрироваться для просмотра ссылки
В качестве источника данных надо использовать таблицу значений с 2 колонками "Номенклатура" и "Отдел".

Большое спасибо за подсказку. А можно как то проверить результат блокировки? Может как то по точке остановки, или каким то запросом или еще как то? Что бы понимать правильно ли я ставлю блокировку? А то за них баллы яростно снимают.
Batchir
А разве это не скушеается платформой?
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлементБлокировки.УстановитьЗначение("Отдел", Справочники.Отделы.ОтделЗакупок);
Блокировка.Заблокировать();
Vofka
Цитата(Batchir @ 12.06.13, 14:08) необходимо зарегистрироваться для просмотра ссылки
А разве это не скушеается платформой?

Продам дорого СП smile.gif :

Цитата
ИсточникДанных (DataSource)
Использование:

Чтение и запись.
Описание:

Тип: РезультатЗапроса; Табличная часть; ТаблицаЗначений.
bilateral
Спасибо smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.