|
документ поступление товаров и справочник номенклатура | ☑ | ||
---|---|---|---|---|
0
GENN
02.07.14
✎
18:10
|
Процедура ШтрихКодПриИзменении(Элемент)
//Добавление строки в табличную часть по штрихкоду Строка = Справочники.Номенклатура.НайтиПоРеквизиту("ШтрихКод",ШтрихКод); Поиск = Новый Структура("Номенклатура",Строка); Массив = Товары.НайтиСтроки(Поиск); Если Массив.Количество()>0 Тогда НоваяСтрока = Массив[0]; Иначе НоваяСтрока = ДокументОбъект.Товары.Добавить(); НоваяСтрока.Код = Строка.Код; НоваяСтрока.Артикул = Строка.Артикул; НоваяСтрока.КодНаш = Строка.КодНаш; НоваяСтрока.ШтрихКод = Строка.ШтрихКод; НоваяСтрока.Номенклатура = Строка; НоваяСтрока.ЦенаЗакупки = Строка.ЦенаЗакупки; НоваяСтрока.ЦенаПродажи = Строка.ЦенаРозница; КонецЕсли; //Выделяем строку ЭлементыФормы.Товары.ТекущаяСтрока = НоваяСтрока; ЭлементыФормы.Товары.РежимВыделенияСтроки = РежимВыделенияСтрокиТабличногоПоля.Строка; //открываем карточку товара Если НЕ ПустаяСтрока(Строка) Тогда ПараметрыФормы = Новый Структура("Ключ", Строка); //ПолучитьФорму( ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта",ПараметрыФормы,ЭлементыФормы.Товары); Иначе ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта",); КонецЕсли; //ТоварыОбработкаВыбора(Элемент, Строка, ); //НоваяСтрока.Количество = НоваяСтрока.Количество + 1; НовоеКоличество = 0; ВвестиЧисло(НовоеКоличество,"Введите количество"); НоваяСтрока.Количество = НоваяСтрока.Количество + НовоеКоличество; НоваяСтрока.СуммаЗакупки = НоваяСтрока.Количество * Строка.ЦенаЗакупки; НоваяСтрока.СуммаПродажи = НоваяСтрока.Количество * Строка.ЦенаРозница; Количество = Товары.Итог("Количество"); СуммаЗакупки = Товары.Итог("СуммаЗакупки"); СуммаПродажи = Товары.Итог("СуммаПродажи"); ШтрихКод = ""; ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ШтрихКод; КонецПроцедуры как сделать так чтобы при заполнении пустой карточки и сохранении её в табличну часть документа попадали кроме количества и остальные реквизиты? сейчас при открытии и заполнении пустой карточки добавляется только количество |
|||
1
GENN
02.07.14
✎
18:14
|
1С 8,2 обычное приложение (обычные формы)
|
|||
2
GENN
03.07.14
✎
14:26
|
Помогите пожалуйста разобраться
|
|||
3
catena
03.07.14
✎
14:40
|
Может проверять Строка на пустоту до заполнения реквизитов?
|
|||
4
GENN
03.07.14
✎
16:42
|
Переделал так
ШтрихКодПриИзменении(Элемент) //Добавление строки в табличную часть по штрихкоду Строка = Справочники.Номенклатура.НайтиПоРеквизиту("ШтрихКод",ШтрихКод); //открываем карточку товара Если НЕ ПустаяСтрока(Строка) Тогда ПараметрыФормы = Новый Структура("Ключ", Строка); ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта",ПараметрыФормы,ЭлементыФормы.Товары); Иначе ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта",ПараметрыФормы,ЭлементыФормы.Товары); КонецЕсли; Поиск = Новый Структура("Номенклатура",Строка); Массив = Товары.НайтиСтроки(Поиск); Если Массив.Количество()>0 Тогда НоваяСтрока = Массив[0]; Иначе НоваяСтрока = ДокументОбъект.Товары.Добавить(); НоваяСтрока.Код = Строка.Код; НоваяСтрока.Артикул = Строка.Артикул; НоваяСтрока.КодНаш = Строка.КодНаш; НоваяСтрока.ШтрихКод = Строка.ШтрихКод; НоваяСтрока.Номенклатура = Строка; НоваяСтрока.ЦенаЗакупки = Строка.ЦенаЗакупки; НоваяСтрока.ЦенаПродажи = Строка.ЦенаРозница; КонецЕсли; //Выделяем строку ЭлементыФормы.Товары.ТекущаяСтрока = НоваяСтрока; ЭлементыФормы.Товары.РежимВыделенияСтроки = РежимВыделенияСтрокиТабличногоПоля.Строка; НовоеКоличество = 0; ВвестиЧисло(НовоеКоличество,"Введите количество"); НоваяСтрока.Количество = НоваяСтрока.Количество + НовоеКоличество; НоваяСтрока.СуммаЗакупки = НоваяСтрока.Количество * Строка.ЦенаЗакупки; НоваяСтрока.СуммаПродажи = НоваяСтрока.Количество * Строка.ЦенаРозница; Количество = Товары.Итог("Количество"); СуммаЗакупки = Товары.Итог("СуммаЗакупки"); СуммаПродажи = Товары.Итог("СуммаПродажи"); ШтрихКод = ""; ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ШтрихКод; КонецПроцедуры |
|||
5
GENN
03.07.14
✎
16:43
|
и так
ШтрихКодПриИзменении(Элемент) //Добавление строки в табличную часть по штрихкоду Строка = Справочники.Номенклатура.НайтиПоРеквизиту("ШтрихКод",ШтрихКод); Поиск = Новый Структура("Номенклатура",Строка); Массив = Товары.НайтиСтроки(Поиск); Если Массив.Количество()>0 Тогда ПараметрыФормы = Новый Структура("Ключ", Строка); ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта",ПараметрыФормы,ЭлементыФормы.Товары); НоваяСтрока = Массив[0]; Иначе ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта",ПараметрыФормы,ЭлементыФормы.Товары); НоваяСтрока = ДокументОбъект.Товары.Добавить(); НоваяСтрока.Код = Строка.Код; НоваяСтрока.Артикул = Строка.Артикул; НоваяСтрока.КодНаш = Строка.КодНаш; НоваяСтрока.ШтрихКод = Строка.ШтрихКод; НоваяСтрока.Номенклатура = Строка; НоваяСтрока.ЦенаЗакупки = Строка.ЦенаЗакупки; НоваяСтрока.ЦенаПродажи = Строка.ЦенаРозница; КонецЕсли; //Выделяем строку ЭлементыФормы.Товары.ТекущаяСтрока = НоваяСтрока; ЭлементыФормы.Товары.РежимВыделенияСтроки = РежимВыделенияСтрокиТабличногоПоля.Строка; //ТоварыОбработкаВыбора(Элемент, Строка, ); //НоваяСтрока.Количество = НоваяСтрока.Количество + 1; НовоеКоличество = 0; ВвестиЧисло(НовоеКоличество,"Введите количество"); НоваяСтрока.Количество = НоваяСтрока.Количество + НовоеКоличество; НоваяСтрока.СуммаЗакупки = НоваяСтрока.Количество * Строка.ЦенаЗакупки; НоваяСтрока.СуммаПродажи = НоваяСтрока.Количество * Строка.ЦенаРозница; Количество = Товары.Итог("Количество"); СуммаЗакупки = Товары.Итог("СуммаЗакупки"); СуммаПродажи = Товары.Итог("СуммаПродажи"); ШтрихКод = ""; ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ШтрихКод; КонецПроцедуры но ничего не изменилось |
|||
6
GENN
03.07.14
✎
17:24
|
у кого ещё какие варианты есть?
|
|||
7
catena
03.07.14
✎
17:43
|
Строка = Справочники.Номенклатура.НайтиПоРеквизиту("ШтрихКод",ШтрихКод);
Если НЕ ПустаяСтрока(Строка) Тогда Мне почему-то кажется, что это ЕСЛИ не сработает никогда.... |
|||
8
GENN
03.07.14
✎
18:08
|
нет это Если как раз работает потому что если штрихкод есть то открывается карточка заполненная а если нет то пустая
а варианте(5) уже без этого Если и всё равно поведение не изменилось от начального |
|||
9
GENN
03.07.14
✎
18:11
|
Хорошо вопрос по другому
как в документе перехватить событие при нажатии ОК в карточке товара (в Справочник.ФормаЭлемента)? |
|||
10
catena
03.07.14
✎
19:04
|
Ня.
Всё заполняется. Только вот где гарантия, что пользователь в эту новую номенклатуру не введет совсем другой штрихкод? Строка = Справочники.Номенклатура.НайтиПоРеквизиту("ШтрихКод",ШтрихКод); Если НЕ ПустаяСтрока(Строка) Тогда ПараметрыФормы = Новый Структура("Ключ", Строка); //ПолучитьФорму( ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта",ПараметрыФормы,ЭлементыФормы.Товары); Иначе Ном = Справочники.Номенклатура.СоздатьЭлемент(); Ф = Ном.ПолучитьФорму(); Ф.ОткрытьМодально(); Строка = Ном.Ссылка; КонецЕсли; Поиск = Новый Структура("Номенклатура",Строка); Массив = Товары.НайтиСтроки(Поиск); Если Массив.Количество()>0 Тогда НоваяСтрока = Массив[0]; Иначе НоваяСтрока = Товары.Добавить(); НоваяСтрока.Код = Строка.Код; НоваяСтрока.ШтрихКод = Строка.ШтрихКод; НоваяСтрока.Номенклатура = Строка; КонецЕсли; |
|||
11
Мимохожий Однако
03.07.14
✎
19:34
|
(0)Конфигурация самописная? Посмотри как в типовых сделано, например в УТ10
|
|||
12
GENN
03.07.14
✎
20:54
|
(10) да согласен через ссылку надёжнее СПАСИБО
ТЕМА ЗАКРЫТА |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |