|
Тч дополнительные реквизиты, у номенклатуры в УТ 11.4 | ☑ | ||
---|---|---|---|---|
0
falselight
30.04.20
✎
08:35
|
В УТ 11.4.11.84, у справочника номенклатура есть табличная часть ДополнительныеРеквизиты.
Каким образом она заполняется и где её можно увидеть? Не увидел её в режиме предприятия у элемента справочника номенклатура. |
|||
1
falselight
30.04.20
✎
09:40
|
up
|
|||
2
probably
30.04.20
✎
09:44
|
Настрой сначала использование доп реквизитов для базы в настройках
Потом для номенклатуры добавь доп реквизт там же После этого увидешь в форме номенклатуры |
|||
3
Aleksey
30.04.20
✎
09:44
|
ну как бы книжки почитать не пробовал? Ну там как работать в УТ11. Накрайняк видео в ютубе посмотри, если чтать не любишь/не умеешь
|
|||
4
NeoVision
30.04.20
✎
09:48
|
||||
5
John83
30.04.20
✎
10:30
|
через консоль запросов посмотреть можно
|
|||
6
falselight
01.05.20
✎
09:25
|
(5) Да я и через редактор реквизитов вижу эту тч.
То есть она для создания дополнительных реквизитов со стороны режима предприятия?? А программно как они заполняются? (4) Жаль пока нет ИТС доступа. Нужно завести будет. Буду благодарен пока за информацию тут. Видимо придется несколько реквизитов заводить как дополнительные и заполнять их программно. Подскажите пожалуйста как. |
|||
7
falselight
01.05.20
✎
09:28
|
К примеру вот, пользователь сам добавил реквизиты дополнительные.
И мне нужно их заполнять программно. http://joxi.ru/krDbeX8CJ5a732 |
|||
8
Aleksey
01.05.20
✎
09:34
|
(7) познай силу типового заполнения, это не так сложно
Ну или можешь свой велосипед изобрести, выбор за тобой |
|||
9
falselight
01.05.20
✎
09:36
|
(8) Типовое заполнение это как?
Свой не нужно. Расскажите о чем вы? Пользователь черед дополнительные реквизиты как то создал несколько, мне их нужно заполнять. Я хочу узнать как это делать правильно. Заполнять мне их нужно программно. |
|||
10
falselight
01.05.20
✎
09:37
|
Как он создал эти три реквизита и как их заполнять программно.
|
|||
11
Aleksey
01.05.20
✎
09:43
|
(9) Доп. реквизиты это из БСП, и для управления нсьб глобальные модули, типа управление свойствами
|
|||
12
falselight
01.05.20
✎
09:50
|
(11) Ну а по коду как программно их заполнять не подскажете?
|
|||
13
Aleksey
01.05.20
✎
09:54
|
(12) ХЗ как у УТ, я в бп при загрузки заполняю так
ТаблицаСвойствИЗначений = Новый ТаблицаЗначений; ТаблицаСвойствИЗначений.Колонки.Добавить("Свойство"); ТаблицаСвойствИЗначений.Колонки.Добавить("Значение"); ... НовоеСвойство = ТаблицаСвойствИЗначений.Добавить(); НовоеСвойство.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("МассаНоменклатуры"); НовоеСвойство.Значение = ПолученноеЗначение; ... Если ТаблицаСвойствИЗначений.Количество()>0 тогда УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(ЗагружаемыйОбъект.Ссылка, ТаблицаСвойствИЗначений) КонецЕсли; Наверняка что то похожее в УТ11 |
|||
14
Aleksey
01.05.20
✎
09:56
|
Ну или тупо в лоб, доп реквизиты это ТЧ у объекта так что ищи в ТЧ добавляй строки или меняй найденное
|
|||
15
falselight
01.05.20
✎
10:00
|
(13) Спасибо. Давно с этим не сталкивался.
(14) Сейчас буду пробовать. Вот ещё, тоже пример нашел, - ТЗ = Новый ТаблицаЗначений(); ТЗ.Колонки.Добавить("Свойство"); ТЗ.Колонки.Добавить("Значение"); НомеклатураОбъект = Номеклатура; ТЧ = НомеклатураОбъект.ДополнительныеРеквизиты; Для каждого Строка ИЗ ТЧ Цикл Если Строка.Свойство.Наименование = "Производитель" Тогда НоваяСтрока = ТЗ.Добавить(); НоваяСтрока.Свойство = Строка.Свойство; НоваяСтрока.Значение = Производитель; УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НомеклатураОбъект, ТЗ); ТЗ.Очистить(); КонецЕсли; КонецЦикла; |
|||
16
Aleksey
01.05.20
✎
10:04
|
(15) бредовый пример.
Перебираем ТЧ с допреквизитами у номенклатуры, и если нашли "Производитель", то через УправлениеСвойствами меняем его. У меня только 2 вопроса. Что будет если в ТЧ нет строки с этим реквизитом (например новая позиция) - правильно ничего не будет, он его не добавит не убавит. 2. если перебором нашли нужную строку, то зачем менять через УправлениеСвойствами, почему сразу нельзя поменять значение? |
|||
17
falselight
01.05.20
✎
10:17
|
(16) Ну согласен. Возможно кривой пример попался, буду сейчас пробовать его правильно сделать.
|
|||
18
falselight
01.05.20
✎
10:24
|
(16) А как сразу менять значение?
|
|||
19
falselight
01.05.20
✎
10:24
|
(18+) Почему то везде делается через
УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НомеклатураОбъект, ТЗ); |
|||
20
falselight
01.05.20
✎
10:28
|
Подскажите пожалуйста.
А вот это . http://joxi.ru/DmBweOnuzBGEb2 Это идентификатор, как ссылаться на этот реквизит из режима предприятия? |
|||
21
falselight
01.05.20
✎
10:34
|
(16) Так, вы имели ввиду сразу?
ТЧ = НоваяНоменклатура.ДополнительныеРеквизиты; Для Каждого Строка ИЗ ТЧ Цикл Если Строка.Свойство.Наименование = "Автор" Тогда Строка.Значение = СокрЛП(СтрТз.Автор); ИначеЕсли Строка.Свойство.Наименование = "Год" Тогда Строка.Значение = СокрЛП(СтрТз.Год); ИначеЕсли Строка.Свойство.Наименование = "АртикулИМТ" Тогда Строка.Значение = СокрЛП(СтрТз.АртикулИМТ); КонецЕсли; КонецЦикла; |
|||
22
Aleksey
01.05.20
✎
10:38
|
(21) Да, но только это работает на изменение. Т.е. там где не проставлено ничего не будет
|
|||
23
falselight
01.05.20
✎
11:25
|
(22) Я создал эти реквизиты.
Но при загрузке показывает что ТЧ.Количество() = 0 А как делать на создание ? |
|||
24
falselight
01.05.20
✎
11:40
|
Наверное вот это нужно делать после записи НоваяНоменклатура ?
// *** Заполнение ДОПОЛНИТЕЛЬНЫХ РЕКВИЗИТОВ *** ТаблицаСвойствИЗначений = Новый ТаблицаЗначений; ТаблицаСвойствИЗначений.Колонки.Добавить("Свойство"); ТаблицаСвойствИЗначений.Колонки.Добавить("Значение"); // НовоеСвойство = ТаблицаСвойствИЗначений.Добавить(); НовоеСвойство.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Автор"); НовоеСвойство.Значение = СтрТз.Автор; УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НоваяНоменклатура, ТаблицаСвойствИЗначений); // ТаблицаСвойствИЗначений.Очистить(); НовоеСвойство = ТаблицаСвойствИЗначений.Добавить(); НовоеСвойство.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Год"); НовоеСвойство.Значение = СтрТз.Год; УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НоваяНоменклатура, ТаблицаСвойствИЗначений); // ТаблицаСвойствИЗначений.Очистить(); НовоеСвойство = ТаблицаСвойствИЗначений.Добавить(); НовоеСвойство.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("АртикулИМТ"); НовоеСвойство.Значение = СтрТз.АртикулИМТ; УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НоваяНоменклатура, ТаблицаСвойствИЗначений); // А то идет ошибка {ОбщийМодуль.УправлениеСвойствами.Модуль(1164)}: Метод объекта не обнаружен (ПолучитьОбъект) ВладелецСвойствОбъект = ВладелецСвойств.ПолучитьОбъект(); |
|||
25
falselight
01.05.20
✎
11:43
|
У меня идет ошибка
Метод объекта не обнаружен (ПолучитьОбъект) {ОбщийМодуль.УправлениеСвойствами.Модуль(1164)}: ВладелецСвойствОбъект = ВладелецСвойств.ПолучитьОбъект(); {ВнешняяОбработка.ЗагрузкаOzonIDсXLS.Форма.Форма.Форма(338)}: УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НоваяНоменклатура, ТаблицаСвойствИЗначений); {ВнешняяОбработка.ЗагрузкаOzonIDсXLS.Форма.Форма.Форма(171)}: СоздатьДокумент_ПоступлениеТоваровУслуг(); {ВнешняяОбработка.ЗагрузкаOzonIDсXLS.Форма.Форма.Форма(166)}: ЗагрузитьНаСервере(); не подскажете что у меня не так? |
|||
26
falselight
01.05.20
✎
11:45
|
Ошибка на этой строке
НачатьТранзакцию(); Попытка Если ЕстьДопРеквизиты Тогда ВладелецСвойствОбъект = ВладелецСвойств.ПолучитьОбъект(); там почему то уже объект http://joxi.ru/LmGbQ18CJd3dJr |
|||
27
falselight
01.05.20
✎
11:52
|
Так сейчас буду пробовать
УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НоваяНоменклатура.Ссылка, ТаблицаСвойствИЗначений); |
|||
28
falselight
01.05.20
✎
12:08
|
Записываю сначала создаваемый элемент номенклатура
потом задаю ему значения дополнительных реквизитов потом ещё раз записываю почему идет такая ошибка? Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)! {ВнешняяОбработка.ЗагрузкаOzonIDсXLS.Форма.Форма.Форма(357)}: НоваяНоменклатура.Записать(); {ВнешняяОбработка.ЗагрузкаOzonIDсXLS.Форма.Форма.Форма(171)}: СоздатьДокумент_ПоступлениеТоваровУслуг(); {ВнешняяОбработка.ЗагрузкаOzonIDсXLS.Форма.Форма.Форма(166)}: ЗагрузитьНаСервере(); по причине: Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)! |
|||
29
falselight
01.05.20
✎
12:09
|
НоваяСтрока.Номенклатура = НоваяНоменклатура.Ссылка;
// // *** Заполнение ДОПОЛНИТЕЛЬНЫХ РЕКВИЗИТОВ *** ТаблицаСвойствИЗначений = Новый ТаблицаЗначений; ТаблицаСвойствИЗначений.Колонки.Добавить("Свойство"); ТаблицаСвойствИЗначений.Колонки.Добавить("Значение"); // НовоеСвойство = ТаблицаСвойствИЗначений.Добавить(); НовоеСвойство.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Автор"); НовоеСвойство.Значение = СтрТз.Автор; УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НоваяНоменклатура.Ссылка, ТаблицаСвойствИЗначений); // ТаблицаСвойствИЗначений.Очистить(); НовоеСвойство = ТаблицаСвойствИЗначений.Добавить(); НовоеСвойство.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Год"); НовоеСвойство.Значение = СтрТз.Год; УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НоваяНоменклатура.Ссылка, ТаблицаСвойствИЗначений); // ТаблицаСвойствИЗначений.Очистить(); НовоеСвойство = ТаблицаСвойствИЗначений.Добавить(); НовоеСвойство.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Артикул"); НовоеСвойство.Значение = СтрТз.Артикул; УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НоваяНоменклатура.Ссылка, ТаблицаСвойствИЗначений); // МенеджерЗаписи = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьМенеджерЗаписи(); МенеджерЗаписи.Штрихкод = СтрТз.Баркод; МенеджерЗаписи.Номенклатура = НоваяНоменклатура.Ссылка; МенеджерЗаписи.Записать(); // НоваяНоменклатура.Записать(); КонецЕсли; |
|||
30
falselight
01.05.20
✎
12:15
|
Что я не так делаю. подскажите пожалуйста.
|
|||
31
falselight
01.05.20
✎
12:23
|
После прохода вот этой строки
НовоеСвойство = ТаблицаСвойствИЗначений.Добавить(); НовоеСвойство.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Автор"); НовоеСвойство.Значение = СтрТз.Автор; УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НоваяНоменклатура.Ссылка, ТаблицаСвойствИЗначений); НоваяНоменклатура.ДополнительныеРеквизиты.Количество() = 0 Почему? Я же добавил туда запись! |
|||
32
Aleksey
01.05.20
✎
12:24
|
Зачем каждый раз дергать УправлениеСвойствами? Заполняй тз и передавай 1 раз
Ну и заполняй свойства после записи, повторно записовать не нужно |
|||
33
Aleksey
01.05.20
✎
12:26
|
(31)
потому что ты передал ссылку и тз с реквизитами, и он сам нашел объект и записал. Т.е. тебе нужно прочитать изменения, если так нужно. НоваяНоменклатура.Прочитать(); |
|||
34
Aleksey
01.05.20
✎
12:27
|
Зайди в УправлениеСвойствами.ЗаписатьСвойстваУОбъекта и посмотри что он там делает
|
|||
35
falselight
01.05.20
✎
13:06
|
(34) Ок. Спасибо. С этим вроде разобрался.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |