вторник, 7 августа 2012 г.

Немного для себя - дописки к УТ 10.3

1.
Свойства конфигурации - Модуль сеанса

Процедура УстановкаПараметровСеанса()

ПараметрыСеанса.ОбщиеЗначения = Новый ХранилищеЗначения(Новый Структура);
ПолныеПрава.ОпределитьПараметрыСеансаДляОбменаДанными();
ПолныеПрава.УстановитьПараметрыСеанса();
ПараметрыСеанса.Подразделение = ПараметрыСеанса.ТекущийПользователь.Подразделение;
КонецПроцедуры // УстановкаПараметровСеанса

2.Модуль Полные права
Функция ЕстьДоступныеПраваДляЗапускаКонфигурации() Экспорт
Возврат РольДоступна("ПолныеПрава") ИЛИ РольДоступна("Пользователь") ИЛИ РольДоступна("НовыйОператор") ИЛИ РольДоступна("ПолныеПраваДляОбмена");

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

3. Работа С торговым оборудованием (Получить новый PLU)


// Функция возвращает значение PLU для новой записи регистра сведений
// "ТоварыНаККМ" в соответствии с текущим порядком назначения PLU.
//
// Параметры
// КассаККМ - <СправочникСсылка.КассыККМ>
// - Касса, с которой будет связана запись.
//
// Номенклатура - <СправочникСсылка.Номенклатура>
// - Номенклатура, для которой необходимо задать новый PLU.
//
// Возвращаемое значение:
// <Число> – Значение PLU.
//
Функция ПолучитьНовыйPLU(КассаККМ, Номенклатура,Порядок=Неопределено,Префиксы=Неопределено,ТекКод=Неопределено) Экспорт

Код = 0;
Если Порядок=Неопределено Тогда
Порядок = Константы.ПорядокПрисвоенияPLU.Получить();
КонецЕсли;

Если Порядок = Перечисления.ПорядокПрисвоенияPLU.ПоКодуНоменклатуры Тогда
//исходный
// Код = Число(Номенклатура.Код);
// изменения
Если Префиксы=Неопределено Тогда
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПрефиксыТоваровККМ.Префикс,
| ПрефиксыТоваровККМ.Цифра
|ИЗ
| Справочник.ПрефиксыТоваровККМ КАК ПрефиксыТоваровККМ
|ГДЕ
| (НЕ ПрефиксыТоваровККМ.ПометкаУдаления)";
Префиксы = ЗАпрос.Выполнить().Выгрузить();
Префиксы.Колонки.Добавить("Количество");
Если Префиксы.Количество()=0 Тогда
Сообщить("Не заполнены соответствия Префиксов номенклатуры - Числу! Справочник.ПрефиксыТоваровККМ");
//Возврат;
КонецЕсли;
Для каждого стр из Префиксы Цикл
стр.Количество = СтрДлина(стр.Префикс);
КонецЦикла;
ТекКод = Номенклатура.Код;
КонецЕсли;
Для каждого стр из Префиксы Цикл
Если Лев(ТекКод,стр.Количество)=стр.Префикс Тогда
Код = ""+стр.Цифра+Прав(ТекКод,7-стрДлина(стр.Цифра));
Код = Число(Код);
КонецЕсли;
КонецЦикла;
Если Код = 0 Тогда
Сообщить("Не возможно преобразовать код номенклатуры - "+ТекКод+" - В число!!!");
КонецЕсли;
// Конец изменений

4.


Комментариев нет:

Отправить комментарий