![]() |
![]() |
![]() |
|
Как получить штрихкод (число) по имени позиции номенклатуры? | ☑ | ||
---|---|---|---|---|
0
Iliya
08.07.08
✎
03:02
|
Собственно сабж.
Помогите. Не пинайте сильно за ламерские вопросы. Есть СтрокаТабличнойЧасти.Номенклатура с введенным туда именем позиции номенклатуры Нужно получить штрихкод и записать его в СтрокаТабличнойЧасти.штрих_код |
|||
1
Trance_1C
08.07.08
✎
03:18
|
Непонятно что за конфигурация, но наверно тебе нужно выбрать из регистра сведений все штрих-коды твоей номенклатуры и отсортировав получить один из них.
напиши типа вот такую функцию которая будет возвращать штрих-код по переданной номенклатуре Функция ПолучитьШК(Товар) ШК=""; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 |Штрихкоды.Штрихкод КАК Штрихкод |ИЗ | РегистрСведений.Штрихкоды КАК Штрихкоды |ГДЕ | Штрихкоды.Владелец = &Владелец | |СГРУППИРОВАТЬ ПО | Штрихкоды.Штрихкод | |УПОРЯДОЧИТЬ ПО | Штрихкод УБЫВ " Выб = Запрос.Выполнить().Выбрать(); Если Выб.Следующий() Тогда ШК=Выб.Штрихкод; КонецЕсли; Возврат(ШК); КонецФункции |
|||
2
Trance_1C
08.07.08
✎
03:20
|
с установленным параметром запроса, будет правильней :)
хотя за ошибки не ручаюсь писал все прямо здесь... Функция ПолучитьШК(Товар) ШК=""; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 |Штрихкоды.Штрихкод КАК Штрихкод |ИЗ | РегистрСведений.Штрихкоды КАК Штрихкоды |ГДЕ | Штрихкоды.Владелец = &Владелец | |СГРУППИРОВАТЬ ПО | Штрихкоды.Штрихкод | |УПОРЯДОЧИТЬ ПО | Штрихкод УБЫВ " Запрос.УстановитьПараметр("Владелец",Товар); Выб = Запрос.Выполнить().Выбрать(); Если Выб.Следующий() Тогда ШК=Выб.Штрихкод; КонецЕсли; Возврат(ШК); КонецФункции |
|||
3
Iliya
08.07.08
✎
08:51
|
Большое спасибо.
Я так и делал, неправильно только немножко запрос составлял. Теперь все работает :) |
|||
4
saladinos
28.08.08
✎
20:58
|
а как и куда эту фунция вставить. Проблема такая: Конфа управление розничничной торговлей . нужно в документ поступление товаров добавить реквизит штрихкод ( должно показывать штрихкод по каждой позиции).
|
|||
5
Михаил Козлов
28.08.08
✎
21:17
|
Если по ШК не надо сортировать и искать, то добавьте колоку в таб. поле и формируйте текст ШК в ПриПолученииДанных.
|
|||
6
saladinos
28.08.08
✎
23:09
|
Как это сделать? Я в 1с очень слабо разбираюсь. Напишите, если можно пошагово.
Или где можно найти такую информацию . Заранее спасибо. |
|||
7
saladinos
29.08.08
✎
22:20
|
Куда здесь его вставлять ?
Перем мУчетнаяПолитика Экспорт; Перем мРассчитыватьАвтоматическиеСкидки; Перем мТерминалы; // Коллекция колонок табличного поля "Товары". Перем мКолонкиТовары; // Хранит дерево кнопок подменю заполнение ТЧ Перем мКнопкиЗаполненияТЧ; Процедура ПриОткрытии() ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма); РаботаСДиалогами.ПриОткрытииФормыДокумента(ЭтоНовый(), ЭтаФорма, ЭтотОбъект, глЗначениеПеременной("глТекущийПользователь")); // Установить печатную форму по умолчанию. РаботаСДиалогами.УстановитьКнопкуПечати(ЭтотОбъект, ЭтаФорма); Если ЭтоНовый() Тогда РаботаСДиалогами.УстановитьДвижениеПоОрдернойСхеме(ПоступлениеПоОрдернойСхеме, Склад, Ответственный); Модифицированность = Ложь; КонецЕсли; УправлениеВидимостью(); КонецПроцедуры Процедура ПослеЗаписи() РаботаСДиалогами.УстановитьЗаголовокФормыДокумента(, ЭтотОбъект, ЭтаФорма); КонецПроцедуры // Процедура устанавливает доступность элементов форм документа, // в зависимости от настроек прав пользователя Процедура УстановитьДоступностьЭлементовФормДокумента() Экспорт Если Не ОбщегоНазначения.УстановитьДоступностьФормыПоПравуПользователя(ЭтаФорма, ЭтотОбъект) Тогда Возврат; КонецЕсли; ЭлементыФормы.Дата.Доступность = (ЭлементыФормы.Дата.Доступность И УправлениеПользователями.ПолучитьБулевоЗначениеПраваПользователя(ПланыВидовХарактеристик.ПраваПользователей.ИзменятьДату, Истина)); ЭлементыФормы.Склад.Доступность = (ЭлементыФормы.Склад.Доступность И УправлениеПользователями.ПолучитьБулевоЗначениеПраваПользователя(ПланыВидовХарактеристик.ПраваПользователей.ИзменятьСклад, Истина)); ЭлементыФормы.Ответственный.Доступность = (ЭлементыФормы.Ответственный.Доступность И УправлениеПользователями.ПолучитьБулевоЗначениеПраваПользователя(ПланыВидовХарактеристик.ПраваПользователей.ИзменятьОтветственного, Истина)); ЭлементыФормы.Контрагент.Доступность = (ЭлементыФормы.Контрагент.Доступность И УправлениеПользователями.ПолучитьБулевоЗначениеПраваПользователя(ПланыВидовХарактеристик.ПраваПользователей.ИзменятьКонтрагента, Истина)); //Проверим перебором табличные поля формы документа ТабличныеПоля = Новый Структура("Товары"); Для Каждого ТукущееТабличноеПоле Из ТабличныеПоля Цикл ТабличноеПоле = ЭлементыФормы.Найти(ТукущееТабличноеПоле.Ключ); Если ТабличноеПоле <> Неопределено Тогда ТабличноеПоле.Доступность = (ТабличноеПоле.Доступность И УправлениеПользователями.ПолучитьБулевоЗначениеПраваПользователя(ПланыВидовХарактеристик.ПраваПользователей.ИзменятьТабличныеЧасти, Истина)); Иначе Продолжить; КонецЕсли; КомманднаяПанельТабличногоПоля = ЭлементыФормы.Найти("КоманднаяПанель" + ТукущееТабличноеПоле.Ключ); Если КомманднаяПанельТабличногоПоля <> Неопределено тогда КомманднаяПанельТабличногоПоля.Доступность = (КомманднаяПанельТабличногоПоля.Доступность И УправлениеПользователями.ПолучитьБулевоЗначениеПраваПользователя(ПланыВидовХарактеристик.ПраваПользователей.ИзменятьТабличныеЧасти, Истина)); КонецЕсли; КолонкаЦена = ТабличноеПоле.Колонки.Найти("Цена"); Если КолонкаЦена <> Неопределено Тогда Значение = (КолонкаЦена.Доступность И УправлениеПользователями.ПолучитьБулевоЗначениеПраваПользователя(ПланыВидовХарактеристик.ПраваПользователей.ИзменятьЦену, Истина)); КолонкаЦена.Доступность = Значение; КолонкаСумма = ТабличноеПоле.Колонки.Найти("Сумма"); Если КолонкаСумма <> Неопределено Тогда КолонкаСумма.Доступность = (КолонкаСумма.Доступность И Значение); КонецЕсли; КонецЕсли; КолонкаСтавкаНДС = ТабличноеПоле.Колонки.Найти("СтавкаНДС"); Если КолонкаСтавкаНДС <> Неопределено Тогда КолонкаСтавкаНДС.Доступность = (КолонкаСтавкаНДС.Доступность И УправлениеПользователями.ПолучитьБулевоЗначениеПраваПользователя(ПланыВидовХарактеристик.ПраваПользователей.ИзменятьСтавкуНДС, Истина)); КонецЕсли; КонецЦикла; КонецПроцедуры //УстановитьДоступностьЭлементовФормДокумента() // Процедура вызывается при нажатии кнопки "Изменить" командной панели // табличного поля "Товары", вызывает сервисный механизм для изменения табличной части // Процедура КоманднаяПанельТоварыИзменить(Кнопка) // Получим контекст обработки ИзменениеТабличнойЧастиТовары = Обработки.ОбработкаТабличнойЧастиТовары.Создать(); ФормаИзменениеТабличнойЧастиТовары = ИзменениеТабличнойЧастиТовары.ПолучитьФорму(,ЭтаФорма); //Установим реквизиты и переменные формы. ФормаИзменениеТабличнойЧастиТовары.ДокументОбъект = ЭтотОбъект; ФормаИзменениеТабличнойЧастиТовары.мФормаДокумента = ЭтаФорма; ФормаИзменениеТабличнойЧастиТовары.мЕстьНДС = УчитыватьНДС; ФормаИзменениеТабличнойЧастиТовары.мЕстьЦенаВРознице = Ложь; //Перенесем табличную часть ИзменениеТабличнойЧастиТовары.Товары.Загрузить(Товары.Выгрузить()); // Открываем форму обработки ФормаИзменениеТабличнойЧастиТовары.Открыть(); КонецПроцедуры // Процедура вызывает обработку ЗаполнениеТабличнойЧасти // Процедура КоманднаяПанельЗаполнениеТабличнойЧасти(Кнопка) // Получим контекст обработки ЗаполнениеТабличнойЧастиТовары = Обработки.ЗаполнениеТабличнойЧастиТовары.Создать(); ФормаЗаполненияТабличнойЧастиТовары = ЗаполнениеТабличнойЧастиТовары.ПолучитьФорму("Форма", ЭтаФорма); //Установим реквизиты и переменные формы. ФормаЗаполненияТабличнойЧастиТовары.ДокументОбъект = ЭтотОбъект; ФормаЗаполненияТабличнойЧастиТовары.ИмяТабличнойЧасти = "Товары"; ФормаЗаполненияТабличнойЧастиТовары.РеквизитКоличествоИмя = "Количество"; ФормаЗаполненияТабличнойЧастиТовары.РеквизитЦенаИмя = "Цена"; ФормаЗаполненияТабличнойЧастиТовары.РеквизитСуммаИмя = "Сумма"; ФормаЗаполненияТабличнойЧастиТовары.СкладВТабличнойЧасти = Ложь; ФормаЗаполненияТабличнойЧастиТовары.РеквизитСкладИмя = "Склад"; // Открываем форму обработки ФормаЗаполненияТабличнойЧастиТовары.ОткрытьМодально(); КонецПроцедуры // Процедура обрабатывает изменение номенклатуры в ТЧ товары. Для обращений извне. // Процедура ТоварыПриИзмененииНоменклатуры(СтрокаТабличнойЧасти) Экспорт Перем УстановленаСтавкаНДС; ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(СтрокаТабличнойЧасти,ЭтотОбъект); ОбработкаТабличныхЧастей.ЗаполнитьПараметрыТабЧастиПоКонтрагенту(СтрокаТабличнойЧасти, ЭтотОбъект, УстановленаСтавкаНДС); СтрокаТабличнойЧасти.Коэффициент = СтрокаТабличнойЧасти.ЕдиницаИзмерения.Коэффициент; Если Не УстановленаСтавкаНДС Тогда СтрокаТабличнойЧасти.СтавкаНДС = СтрокаТабличнойЧасти.Номенклатура.СтавкаНДС; КонецЕсли; ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, УчитыватьНДС, СуммаВключаетНДС); //Активизирует колонку "Количество" РаботаСДиалогами.АктивизироватьЯчейкуТабличногоПоля(ЭлементыФормы.Товары, СтрокаТабличнойЧасти, мКолонкиТовары.Количество); КонецПроцедуры // Процедура обрабатывает изменение количество в ТЧ товары. Для обращений извне. // Процедура ТоварыПриИзмененииКоличества(СтрокаТабличнойЧасти) Экспорт ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, УчитыватьНДС, СуммаВключаетНДС); //Активизирует колонку "Количество" РаботаСДиалогами.АктивизироватьЯчейкуТабличногоПоля(ЭлементыФормы.Товары, СтрокаТабличнойЧасти, мКолонкиТовары.Количество); КонецПроцедуры // Процедура - обработчик события "ПриИзменении" поля Номенклатура // в строке табличной части "Товары". // Процедура ТоварыНоменклатураПриИзменении(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; ТоварыПриИзмененииНоменклатуры(СтрокаТабличнойЧасти); КонецПроцедуры // Процедура - обработчик события "ПриИзменении" поля Количество // в строке табличной части "Товары". // Процедура ТоварыКоличествоПриИзменении(Элемент) СтрокаТабличнойЧасти=ЭлементыФормы.Товары.ТекущиеДанные; ТоварыПриИзмененииКоличества(СтрокаТабличнойЧасти); КонецПроцедуры // Процедура - обработчик события "ПриИзменении" поля ввода единицы измерения // в строке табличной части "Товары". // Процедура ТоварыЕдиницаИзмеренияПриИзменении(Элемент) СтрокаТабличнойЧасти=ЭлементыФормы.Товары.ТекущиеДанные; ОбработкаТабличныхЧастей.ПриИзмененииЕдиницыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, УчитыватьНДС, СуммаВключаетНДС); КонецПроцедуры // Процедура - обработчик события "ПриИзменении" поля ввода цены // в строке табличной части "Товары". // Процедура ТоварыЦенаПриИзменении(Элемент) СтрокаТабличнойЧасти=ЭлементыФормы.Товары.ТекущиеДанные; ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, УчитыватьНДС, СуммаВключаетНДС); КонецПроцедуры // Процедура - обработчик события "ПриИзменении" поля ввода ссуммы // в строке табличной части "Товары". // Процедура ТоварыСуммаПриИзменении(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; ОбработкаТабличныхЧастей.ПриИзмененииСуммыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, УчитыватьНДС, СуммаВключаетНДС); КонецПроцедуры // Процедура - обработчик события "ПриИзменении" поля ввода ставки НДС // в строке табличной части "Товары". // Процедура ТоварыСтавкаНДСПриИзменении(Элемент) ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект, УчитыватьНДС, СуммаВключаетНДС); КонецПроцедуры // Процедура - обработчик события "ПриВыводеСтроки" табличной части // "Товары". // Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если ЭлементыФормы.Товары.Колонки.Всего.Видимость Тогда ОформлениеСтроки.Ячейки.Всего.УстановитьТекст(Формат(ДанныеСтроки.Сумма + ?(СуммаВключаетНДС, 0, ДанныеСтроки.СуммаНДС), "ЧЦ=15;ЧДЦ=2")); КонецЕсли; РаботаСДиалогами.ПоказатьКодАртикул(мКолонкиТовары, ОформлениеСтроки.Ячейки, ДанныеСтроки.Номенклатура); КонецПроцедуры /////////////////////////////////////////////////////////////////////////////// //// ФУНКЦИИ ВЗАИМОДЕЙСТВИЯ С ТОРГОВЫМ ОБОРУДОВАНИЕМ (ОБЩИЕ ФУНКЦИИ API) // Процедура - обработчик внешнего события, которое возникает при посылке // внешним приложением сообщения, сформированного в специальном формате. // Внешнее событие сначала обрабатывается всеми открытыми формами, имеющими // обработчик этого события, а затем может быть обработано в процедуре модуля // приложения с именем ОбработкаВнешнегоСобытия(). // // Параметры: // Источник - <Строка> // - Источник внешнего события. // // Событие - <Строка> // - Наименование события. // // Данные - <Строка> // - Данные для события. // Процедура ВнешнееСобытие(Источник, Событие, Данные) Если Не ВводДоступен() Тогда Возврат; КонецЕсли; ПолучитьСерверТО().ОбработатьВнешнееСобытие(Событие, Данные, ЭтаФорма); КонецПроцедуры // ВнешнееСобытие() // Функция возвращает признак того, что клиент поддерживает работу с видом ТО, // переданным в качестве параметра. // // Параметры: // Вид - <ПеречислениеСсылка.ВидыТорговогоОборудования> // - Вид торгового оборудования, информация о поддержке // которого запрашивается. // // Возвращаемое значение: // <Булево> - Признак поддержки указанного класса торгового оборудования. // Функция ПоддерживаетсяВидТО(Вид) Экспорт Результат = Ложь; Если Вид = Перечисления.ВидыТорговогоОборудования.СканерШтрихКода Или Вид = Перечисления.ВидыТорговогоОборудования.ТерминалСбораДанных Тогда Результат = Истина; КонецЕсли; Возврат Результат; КонецФункции // ПоддерживаетсяВидТО() /////////////////////////////////////////////////////////////////////////////// //// ФУНКЦИИ ВЗАИМОДЕЙСТВИЯ С ТОРГОВЫМ ОБОРУДОВАНИЕМ (СКАНЕР ШТРИХКОДА) // Функция осуществляет обработку считывания штрих-кода номенклатуры // // Параметры: // Номенклатура - <СправочникСсылка.Номенклатура> // - Номенклатура, штрих-код которой был отсканирован. // // Единица - <СправочникСсылка.ЕдиницыИзмерения> // - Единица измерения отсканированной номенклатуры. // // Количество - <Число> // - Количество отсканированной номенклатуры. // // СШК - <Строка> // - Идентификатор сканера штрих-кода, с которым связано данное // событие. // // Возвращаемое значение: // <Булево> - Данная ситуация обработана. // Функция СШКНоменклатура(Номенклатура, Единица, Количество, СШК) Экспорт РаботаСДиалогами.ОбработкаПодбора(ЭтаФорма, Товары, Номенклатура, Единица, Количество); Возврат Истина; КонецФункции // СШКНоменклатура() // Функция осуществляет обработку считывания штрих-кода информационной карты // // Параметры: // Карта - <СправочникСсылка.ИнформационныеКарты> // - Отсканированная информационная карта. // // СШК - <Строка> // - Идентификатор сканера штрих-кода, с которым связано данное // событие. // // Возвращаемое значение: // <Булево> - Данная ситуация обработана. Функция СШКИнформационнаяКарта(Карта, СШК) Экспорт Предупреждение("Подбор информационных карт в данной форме не предусмотрен!"); Возврат Истина; КонецФункции // СШКИнформационнаяКарта() // Функция осуществляет обработку считывания штрихового кода, который не был // зарегистрирован. // // Параметры: // Штрихкод - <Строка> // - Считанный код. // // ТипКода - <ПланыВидовХарактеристикСсылка.ТипыШтрихкодов> // - Тип штрихкода. Пустая ссылка в случае, если тип определить не // представляется возможным. // // СШК - <Строка> // - Идентификатор сканера штрих-кода, с которым связано данное // событие. // // Возвращаемое значение: // <Булево> - Данная ситуация обработана. Функция СШКНеизвестныйКод(Штрихкод, ТипКода, СШК) Экспорт Возврат Ложь; КонецФункции // СШКНеизвестныйКод() // Процедура осуществляет обработку ошибки, произошедшей при работе со сканером // штрих-кода. // // Параметры: // Ошибка - <ПеречислениеСсылка.ТООшибки*> // - Возникшая ошибка. // // Штрихкод - <Строка> // - Считанный штрихкод или пустая строка, если штрихкод не был // считан. // // ТипШК - <ПланыВидовХарактеристикСсылка.ТипыШтрихкодов> // - Тип штрихкода или пустая ссылка в случае, если тип не определён. // // СШК - <Строка> // - Идентификатор сканера штрих-кода, с которым связано данное // событие. Процедура СШКОшибка(Ошибка, Штрихкод, ТипШК, СШК) Экспорт Текст = ПолучитьСерверТО().ПолучитьТекстОшибкиСШКТО(Ошибка, Штрихкод, ТипШК); Предупреждение(Текст); КонецПроцедуры // СШКОшибка() // Процедура - обработчик нажатия на кнопку "Печать". // Открывает форму выбора печатных форм объекта. // Процедура ОсновныеДействияФормыПечать(Кнопка) УниверсальныеМеханизмы.ОткрытьФормуВыбораПечатныхФормОбъекта(ЭтотОбъект, ЭтаФорма); // Установить печатную форму по умолчанию. РаботаСДиалогами.УстановитьКнопкуПечати(ЭтотОбъект, ЭтаФорма); КонецПроцедуры // Процедура вызывается при нажатии кнопки "Печать" командной панели формы, // вызывает печать по умолчанию для формы документа. // Процедура ОсновныеДействияФормыДействиеПечать(Кнопка) УниверсальныеМеханизмы.НапечататьДокументПоУмолчанию(ЭтотОбъект); КонецПроцедуры // ОсновныеДействияФормыДействиеПечать() Процедура ПриЗакрытии() ПолучитьСерверТО().ОтключитьКлиента(ЭтаФорма); КонецПроцедуры /////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ ОБРАБОТКИ СВОЙСТВ И КАТЕГОРИЙ // Процедура выполняет открытие формы работы со свойствами документа // Процедура ДействияФормыДействиеОткрытьСвойства(Кнопка) РаботаСДиалогами.ОткрытьСвойстваДокумента(ЭтотОбъект, ЭтаФорма); КонецПроцедуры // ДействияФормыДействиеОткрытьСвойства() // Процедура выполняет открытие формы работы с категориями документа // Процедура ДействияФормыДействиеОткрытьКатегории(Кнопка) РаботаСДиалогами.ОткрытьКатегорииДокумента(ЭтотОбъект, ЭтаФорма); КонецПроцедуры // ДействияФормыДействиеОткрытьКатегории() //Процедура вызывается при выборе пункта подменю "Движения документа" меню "Перейти". // Процедура ДействияФормыДвиженияДокументаПоРегистрам(Кнопка) РаботаСДиалогами.НапечататьДвиженияДокумента(Ссылка); КонецПроцедуры //Процедура вызывается при выборе пункта подменю "Структура подчиненности" меню "Перейти". // Процедура ДействияФормыСтруктураПодчиненностиДокумента(Кнопка) РаботаСДиалогами.ПоказатьСтруктуруПодчиненностиДокумента(Ссылка); КонецПроцедуры // Процедура - обработчик события "ПриИзменении" поля Склад // Процедура СкладПриИзменении(Элемент) ПриИзмененииСклада(); УправлениеВидимостью(); КонецПроцедуры // Производит заполнение реквизита Магазин и соответствующей // надписи на форме. // Процедура ПриИзмененииСклада() Магазин = Склад.Магазин; РаботаСДиалогами.УстановитьДвижениеПоОрдернойСхеме(ПоступлениеПоОрдернойСхеме, Склад, Ответственный); ОбщегоНазначения.УстановитьТекстФормыДокумента(ЭтаФорма, ЭтотОбъект); КонецПроцедуры // Процедура вызывается при выборе пункта "ИзТерминалаСбораДанных" // меню кнопки "Сервис" командной панели табличного поля "Товары" // Процедура КоманднаяПанельТоварыИзТерминалаСбораДанных(Кнопка) ПолучитьСерверТО().ЗагрузитьИзТерминалаСбораДанных(мТерминалы, ЭтаФорма); КонецПроцедуры // Процедура - обработчик нажатия на переключатель "УчитыватьНДС". // Пересчитывает НДС, устанавливает видимость реквизитов на форме. // Процедура УчитыватьНДСПриИзменении(Элемент) Если УчитыватьНДС = Ложь Тогда СуммаВключаетНДС = Ложь; КонецЕсли; ОбработкаТабличныхЧастей.ПересчитатьСуммыНДСТабЧасти(ЭтотОбъект, "Товары"); УправлениеВидимостью(); КонецПроцедуры // Процедура - обработчик нажатия на переключатель "СуммаВключаетНДС". // Пересчитывает НДС в ТЧ. // Процедура СуммаВключаетНДСПриИзменении(Элемент) ОбработкаТабличныхЧастей.ПриИзмененииФлагаДокументаСуммаВключаетНДС(ЭтотОбъект); ОбработкаТабличныхЧастей.ПересчитатьСуммыНДСТабЧасти(ЭтотОбъект, "Товары"); КонецПроцедуры // Процедура устанавливает видимость элементов формы и колонок табличных частей, // видимость которых определяется программно. // Процедура УправлениеВидимостью() РаботаСДиалогами.УстановитьВидимостьКолонокНДС(ЭтаФорма, УчитыватьНДС); ЭлементыФормы.СуммаВключаетНДС.Видимость = УчитыватьНДС; КонецПроцедуры Процедура ДействияФормыВыполнитьПриход(Кнопка) Обработка = Обработки.ПеремещениеНоменклатуры.Создать(); Обработка.СоздатьФорму(ЭтотОбъект, Склад); КонецПроцедуры // Процедура вызывается при нажатии кнопки "Изменить" командной панели // табличного поля "Товары", вызывает сервисный механизм для // группового изменения значений реквизитов табличной части "Товары". // Процедура КоманднаяПанельТоварыНапечататьЦенники(Кнопка) РаботаСДиалогами.ОткрытьФормуПечатиЦенников(ЭтаФорма, Склад.Магазин, ЭтотОбъект); КонецПроцедуры // Процедура вызывается при нажатии кнопки "Подбор" командной панели // табличного поля "Товары", вызывает сервисный механизм для // подбора номеклатуры в табличную часть "Товары". // Процедура КоманднаяПанельТоварыПодбор(Кнопка) РаботаСДиалогами.ОткрытьФормуПодбораНоменклатуры(ЭтаФорма, ЭтотОбъект, Товары); КонецПроцедуры // Процедура вызывается при выборе пункта "Поиск по штрихкоду" меню // кнопки Сервис командной панели табличного поля "Товары", открывает // форму для ввода штрихкода и обрабатывает событие ввода штрихкода. // Процедура КоманднаяПанельТоварыПоискПоШтрихКоду(Кнопка) Результат = РаботаСТорговымОборудованием.ВвестиШтрихкод(); Если Не ПустаяСтрока(Результат) Тогда ПолучитьСерверТО().ОбработатьВведенныйШтрихкод(Результат, ЭтаФорма); КонецЕсли; КонецПроцедуры // Процедура разрешения/запрещения редактирования номера документа. // Процедура ДействияФормыРедактироватьНомер(Кнопка) МеханизмНумерацииОбъектов.ИзменениеВозможностиРедактированияНомера(ЭтотОбъект.Метаданные(), ЭтаФорма, ЭлементыФормы.ДействияФормы.Кнопки.ПодменюДействия, ЭлементыФормы.Номер); КонецПроцедуры // Процедура - обработчик события "ОбработкаВыбора" поля Склад // Процедура СкладОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) Если Не ПустаяСтрока(Номер) И ВыбранноеЗначение.Организация <> Склад.Организация Тогда МеханизмНумерацииОбъектов.СброситьУстановленныйКодНомерОбъекта(ЭтотОбъект, "Номер", ЭлементыФормы.ДействияФормы.Кнопки.ПодменюДействия, ЭлементыФормы.Номер); КонецЕсли; КонецПроцедуры Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) // Установка кнопок заполнение ТЧ УстановитьКнопкиПодменюЗаполненияТЧ(); КонецПроцедуры // Процедура устанавливает подменю "Заполнить" в командных панелях ТЧ документа при необходимости // Процедура УстановитьКнопкиПодменюЗаполненияТЧ(); мКнопкиЗаполненияТЧ = УниверсальныеМеханизмы.ПолучитьДеревоКнопокЗаполненияТабличныхЧастей(Ссылка,Новый Действие("НажатиеНаДополнительнуюКнопкуЗаполненияТЧ")); СоответствиеТЧ = Новый Соответствие; СоответствиеТЧ.Вставить(ЭлементыФормы.Товары,ЭлементыФормы.КоманднаяПанельТовары.Кнопки.Сервис); УниверсальныеМеханизмы.СформироватьПодменюЗаполненияТЧ(мКнопкиЗаполненияТЧ,СоответствиеТЧ); КонецПроцедуры // Процедура - обработчик нажатия на любую из дополнительных кнопок по заполнению ТЧ // Процедура НажатиеНаДополнительнуюКнопкуЗаполненияТЧ(Кнопка) УниверсальныеМеханизмы.ОбработатьНажатиеНаДополнительнуюКнопкуЗаполненияТЧ(мКнопкиЗаполненияТЧ.Строки.Найти(Кнопка.Имя,"Имя",Истина),ЭтотОбъект); КонецПроцедуры // Процедура - обработчик события "ОбновлениеОтображения" формы. // Процедура ОбновлениеОтображения() Если ЭлементыФормы.Товары.Колонки.Всего.Видимость Тогда ЭлементыФормы.Товары.Колонки.Всего.ТекстПодвала = Формат(Товары.Итог("Сумма") + ?(СуммаВключаетНДС, 0, Товары.Итог("СуммаНДС")), "ЧЦ=15;ЧДЦ=2"); КонецЕсли; КонецПроцедуры Процедура КоманднаяПанельТоварыВТерминалСбораДанных(Кнопка) РаботаСДиалогами.ОткрытьФормуВыгрузкиВТСД(ЭтаФорма, Товары.Выгрузить()); КонецПроцедуры //////// АВТОМАТИЧЕСКИЕ СКИДКИ ///////////////////////////////////////////////////////////// мТерминалы = ПолучитьСерверТО().ПолучитьСписокУстройств( Перечисления.ВидыТорговогоОборудования.ТерминалСбораДанных); мКолонкиТовары = ЭлементыФормы.Товары.Колонки; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |