Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 08:07

Как сделать автозаполнение в поле табл.части?

Автор Булат Камалов, 21 дек 2019, 19:15

0 Пользователей и 1 гость просматривают эту тему.

Булат Камалов

Как сделать автозаполнение "Номенклатуры" в поле табл.части. "Номенклатура"?:dfbbdrfb::dfbsdfbsdf:
Чтобы была с кнопкой на форме?

wise

Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Поиск родных

Цитата: Булат Камалов от 21 дек 2019, 19:15
Как сделать автозаполнение "Номенклатуры" в поле табл.части
в поле табл.части - его именно?
И, ответ на этот вопрос сильно зависит от наименования и версии конфигурации, что не было озвучено!

애부개니 김

Здравствуйте Булат!!!
Я не знаю поможет ли Вам мой пример.
Но попробуйте по моему примеру сделать может Вам поможет.
&НаСервере
Функция ПолучитьОбъем(Ссылка)
Возврат Ссылка.Объем;
КонецФункции

Функция ПолучитьЦветЧернила(Ссылка)
Возврат Ссылка.ЦветЧернила;
КонецФункции

Функция ПолучитьТекущуюДату() Экспорт
Возврат ТекущаяДата();
КонецФункции

Функция ПолучитьИДНаСеревере(Краска)
//сначала ище в текущем документе если, нет - то смотрим по регистру
НачальныйИД = Краска.ИдентификационныйНомер;
ДлинаНачИД = СтрДлина(НачальныйИД);

НайдСтроки = Объект.Приход.НайтиСтроки(Новый Структура ("НаименованиеЧернил", Краска));
Если НайдСтроки.Количество()>1 Тогда
ТаблицаИД = Новый ТаблицаЗначений;
ТаблицаИД.Колонки.Добавить("НомерПП");
Для К=0 по НайдСтроки.Количество()-1 Цикл
Попытка
НовСтр = ТаблицаИД.Добавить();
НовСтр.НомерПП = Число(Сред(НайдСтроки[К].ИнвентарныйНомер, ДлинаНачИД+1));
Исключение
НовСтр.НомерПП = 0;
КонецПопытки;
КонецЦикла;
ТаблицаИД.Сортировать("НомерПП Убыв");
ИД = НачальныйИД + (ТаблицаИД[0].НомерПП+1);
Возврат ИД;
КонецЕсли;
      Запрос = Новый  Запрос ("ВЫБРАТЬ
                              | ИнвНомер.ИнвентарныйНомер
                              |ИЗ
                              | РегистрСведений.ИнвНомер КАК ИнвНомер
                              |ГДЕ
                              | ИнвНомер.НазваниеЧернила = &НазваниеЧернила");    
Запрос.УстановитьПараметр("НазваниеЧернила",Краска);
ТаблицаИД = Запрос.Выполнить().Выгрузить();
ТаблицаИД.Колонки.Добавить("НомерПП");
Если ТаблицаИД.Количество()>0 Тогда
Для Каждого ТекСтр Из  ТаблицаИД Цикл
Попытка
ТекСтр.НомерПП = Число(Сред(ТекСтр.ИнвентарныйНомер, ДлинаНачИД+1));
Исключение
Сообщить("Ошибка преобразования Инвентарного номера: НеверныйФормат - "+ТекСтр.ИнвентарныйНомер);
Возврат "";
КонецПопытки;
КонецЦикла;
ТаблицаИД.Сортировать("НомерПП Убыв");
ИД = НачальныйИД + (ТаблицаИД[0].НомерПП+1);
Иначе
ИД = НачальныйИД+1;
КонецЕсли;
Возврат ИД;
КонецФункции


&НаКлиенте
Процедура ПриходНаименованиеЧернилПриИзменении(Элемент)
СтрокаТабЧасти = Элементы.Приход.ТекущиеДанные;
СтрокаТабЧасти.Объем = ПолучитьОбъем(СтрокаТабЧасти.НаименованиеЧернил);
СтрокаТабЧасти.ЦветЧернила = ПолучитьЦветЧернила(СтрокаТабЧасти.НаименованиеЧернил);
СтрокаТабЧасти.ДатаПолучения = ПолучитьТекущуюДату();
СтрокаТабЧасти.ИнвентарныйНомер = ПолучитьИДНаСеревере(СтрокаТабЧасти.НаименованиеЧернил);
КонецПроцедуры

&НаКлиенте
Процедура ПриходПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
СтрокаТабЧасти = Элементы.Приход.ТекущиеДанные;
Если СтрокаТабЧасти <> Неопределено и ЗначениеЗаполнено(СтрокаТабЧасти.НаименованиеЧернил) Тогда
СтрокаТабЧасти.ИнвентарныйНомер = ПолучитьИДНаСеревере(СтрокаТабЧасти.НаименованиеЧернил);
КонецЕсли;

КонецПроцедуры

Булат Камалов

Цитата: Геннадий ОбьГЭС от 22 дек 2019, 12:46
Цитата: Булат Камалов от 21 дек 2019, 19:15
Как сделать автозаполнение "Номенклатуры" в поле табл.части
в поле табл.части - его именно?
И, ответ на этот вопрос сильно зависит от наименования и версии конфигурации, что не было озвучено!
Версия 8.15

Поиск родных


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск