|
Изменение группы номенклатуры в ТЧ Документа Поступление Товаров и Услуг | ☑ | ||
---|---|---|---|---|
0
tabarigen
24.07.15
✎
17:05
|
Конфигурация 1С-Рарус: Управление аптекой (1.50.25.01). Платформа 8.2.
При проведении документа поступление товаров в УА, номенклатура попадает в группу медикаменты. Как мне позволить пользователю самому выбирать в какую группу будет попадать товары из ТЧ документа. Ясно дело, что нужно повесить обработчик события, пройтись по ТЧ циклом и сменить у строк, Номенклатура.Родитель.Ссылка. Вопрос в следующем. Может есть какое либо штатное средство предписанное в конфигурации для выбора группы. Если такой возможности нет, то в каком обработчике события править код, ПередЗаписью? Для выбора группы можно ли обойтись ДопРеквизитами или обязательно добавлять реквизит на форму? |
|||
1
Рэйв
24.07.15
✎
17:41
|
У тебя при проведении меняется Родитель???
... Куда катится мир. |
|||
2
kcdnb
24.07.15
✎
18:41
|
Нариман, вы не из Москвы?
|
|||
3
tabarigen
24.07.15
✎
21:15
|
(1) Простите за терминологию. Наверное не так выразился.
При оприходовании товара, можно ведь сделать так, чтоб весь товар присваился определенной группе номенклатуры. Именно этоя имел ввиду. (2) К счастью нет. |
|||
4
tabarigen
27.07.15
✎
09:58
|
Подскажите пожалуйста.
На форме создал реквизит Справочник.номеклатура и в свойствах поставил Выборку.Групп. В модуле документа ПоступлениеТоваров прописал следующий код: Если ГруппаНоменклатуры <> Неопределено Тогда Для каждого СтрокаТЧ Из ЭтотОбъект.Товары Цикл СтрокаТЧ.Номенклатура.Родитель = ГруппаНоменклатуры; КонецЦикла; КонецЕсли; При записи выдается ошибка {Документ.ПоступлениеТоваров.Форма.ФормаДокумента.Форма(675)}: Поле объекта недоступно для записи (Родитель) СтрокаТЧ.Номенклатура.Родитель = ГруппаНоменклатуры; Это типичная ошибка новичка. А как будет правильно изменить строкиТЧ документа? |
|||
5
Metman
27.07.15
✎
10:06
|
Чтобы у объекта что-то изменить, нужно его сначала получить.
|
|||
6
tabarigen
27.07.15
✎
10:18
|
Из Модуля объекта я не могу разве его получить??
|
|||
7
hhhh
27.07.15
✎
10:18
|
(4) это вы не строку меняете, а саму номенклатуру. Это очень опасно. НАпример это номенклатура у вас была в 1000 документов за предыдущие несколько лет. И эти документы вдруг чудесным образом все сразу поменяются. Да вас прользователи за это живьем без лопаты закопают в асфальт.
|
|||
8
tabarigen
27.07.15
✎
10:38
|
(5) Попробовал получить ссылку, ошибка та же
Док = ЭтотОбъект.Ссылка; Если ГруппаНоменклатуры <> Неопределено Тогда Для каждого СтрокаТЧ Из Док.Товары Цикл СтрокаТЧ.Номенклатура.Родитель = ГруппаНоменклатуры; КонецЦикла; КонецЕсли; (7) Я собственноэто и пытаюсь сделать. Нужно номенклатуру которая приходуется помещать в выбранную юзверем группу. |
|||
9
tabarigen
27.07.15
✎
11:05
|
Док = ЭтотОбъект.Ссылка;
По моему ошибка в том что неправильно получил объект. Метода ПолучитьОбъект() у свойства ЭтотОбъект нету. Как же быть |
|||
10
Metman
27.07.15
✎
11:08
|
Вам нужно получить текущий элемент номенклатуры, изменить родителя и записать его.
|
|||
11
tabarigen
27.07.15
✎
11:08
|
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
ЭтотОбъект (ThisObject) Использование: Только чтение. Описание: Тип: ДокументОбъект. Содержит сам объект базы данных. Предназначено, в основном, для получения данного объекта встроенного языка в модуле объекта или модуле формы. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). СП тоже говорит что, ЭтотОбъект только для чтения доступен. |
|||
12
tabarigen
27.07.15
✎
11:09
|
(10) Текущий элемент я вроде получаю.
при отладке при наведении он высвечивается при наведении. |
|||
13
Tarlich
27.07.15
✎
11:12
|
Док = ЭтотОбъект.Ссылка;
Если ГруппаНоменклатуры <> Неопределено Тогда Для каждого СтрокаТЧ Из Док.Товары Цикл спр = СтрокаТЧ.Номенклатура.ПолучитьОбъект(); спр.Родитель =ГруппаНоменклатуры; спр.Записать() КонецЦикла; КонецЕсли; |
|||
14
Альбатрос
27.07.15
✎
11:13
|
Для каждого СтрокаТЧ Из Док.Товары Цикл
ТекОбъект = СтрокаТЧ.Номенклатура.ПолучитьОбъект(); ТекОбъект.Родитель = ГруппаНоменклатуры; Попытка ТекОбъект.Записать(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЦикла; |
|||
15
tabarigen
27.07.15
✎
11:29
|
(13), (14) Спасибо большое. Получилось.
Док = ЭтотОбъект.Ссылка; Если ГруппаНоменклатуры <> Неопределено Тогда Для каждого СтрокаТЧ Из Док.Товары Цикл ТекОбъект = СтрокаТЧ.Номенклатура.ПолучитьОбъект(); ТекОбъект.Родитель = ГруппаНоменклатуры; Попытка ТекОбъект.Записать(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЦикла; КонецЕсли; |
|||
16
tabarigen
27.07.15
✎
11:56
|
Кстати парни ГруппаНоменклатуры <> Неопределено это есть тоже самое что и ГруппаНоменклатуры.Пустая()??
|
|||
17
Альбатрос
27.07.15
✎
12:06
|
(16) Юзай ЗначениеЗаполнено()
|
|||
18
Альбатрос
27.07.15
✎
12:06
|
(16) нет
|
|||
19
tabarigen
27.07.15
✎
12:27
|
Если ГруппаНоменклатуры = ЗначениеЗаполнено(Справочники.Номенклатура.Ссылка) Тогда
Так?? |
|||
20
tabarigen
27.07.15
✎
12:27
|
ГруппаНоменклатуры.Пустая() вроде норм отрабатывает без ошибок.
|
|||
21
hhhh
27.07.15
✎
12:37
|
Если ЗначениеЗаполнено(ГруппаНоменклатуры) Тогда
|
|||
22
tabarigen
27.07.15
✎
13:00
|
(21) спасибо. Так и в самом деле логичнее и читабельнее.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |