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

Обращение к доп реквизитам из формы

Автор Глеб Шахов, 26 дек 2024, 12:10

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

antoneus

Нет. Если у вас определено 50 дополнительных реквизитов и они не заполнены - это не значит, что будет 50 пустых строк в ТЧ ДополнительныеРеквизиты или 50 пустых записей в регистре. Не будет ни строк ни записей.

LexaK

Глеб Шахов, подсказка.
у вас должна быть такая логика
1.Получаете результат - ТЗ со значениями
2.проверяете результат: Это ТЗ и у нее есть строчки
3.если в результате есть значение - берете его
4.Иначе берете значение из вашей константы со значением по умолчанию

(вроде не сложный алгоритм. Сами сможете запрограммировать?)
если помогло нажмите: Спасибо!

Глеб Шахов


Глеб Шахов

LexaK, поторопился) подскажите, вот например, если значение доп параметра установлено, то я перебирая строки ТЗ получаю это значение. А если не установлено, то делаю проверку на Количество() = 0, и как мне обращаться к этому доп свойству, чтобы присвоить значение константы.

LexaK

Глеб Шахов, примерно так

МассивСвойств = Новый Массив;
МассивСвойств.Добавить(СрокПоставкиСсылка );

РезультатТаблицаЗначений = УправлениеСвойствами.ПолучитьЗначенияСвойств(Контрагент,,,  МассивСвойств);
Если РезультатТаблицаЗначений.Количество() > 0 Тогда
//есть значение
ЗначениеДопРеквизита = РезультатТаблицаЗначений[0].Значение;
Иначе
//значения нет,берем из константы
ЗначениеДопРеквизита = Константы.ВашаКонстанта.Получить();
КонецЕсли;


если помогло нажмите: Спасибо!

Глеб Шахов

LexaK, это я понимаю) но например, у меня доп реквизит срок отгрузки, и в случае, если ТЗ не пустая, значит там указано значение. А если пустая, то в реквизите стоит "0", который мне надо перезаписать на значение из константы, например, 3. Это я все делаю в форме заказа покупателя, в событии при изменении покупателя.

// значение которое указано у справочника Покупатели
РезультатТаблицаЗначений[0].Значение
Иначе   
    //Надо обратиться к справочнику Покупатели и поменять значение 0, на значение из константы
    ??????? = Константы.ВашаКонстанта.Получить();
КонецЕсли;

И вот вопрос только в том, что я не понимаю, как к ней обратиться и присвоить значение

fruitella

Сложно для понимания. Ты в документе хочешь присвоить значение или создать/изменить данные в справочнике. Или ты не знаешь как получить ссылку на свой справочник, чтобы в реквизит документа подставить именно ссылку, т.к. тип у тебя не совпадает?

или ты хочешь, чтобы при проверке если в твоем доп. реквизите 0, то ты хочешь туда записать иное значение?

LexaK

Глеб Шахов,
    ??????? = Константы.ВашаКонстанта.Получить();теперь уже я ни чего не понимаю (в то вы не понимаете)....
если помогло нажмите: Спасибо!

Глеб Шахов

fruitella,по идее у меня задача, что я не могу в основном конфиге что-то менять, есть документ Заказ Покупателя, я его перетаскиваю в расширение. В этом заказе при выборе реквизита Покупатель(ссылка на справочник) у меня в этом справочнике, если у допреквизита значение не указано, т.е. 0, то я присваиваю ему константу, а если указано, то беру его из значения Таблицы Значений. ну и думаю, просто вывести сообщение, что срок отгрузки столько-то дней, либо столько сколько в константе. И вот я не понимаю, как мне обратиться к этому доп реквизиту и присвоить ему значение, если оно 0. Еще надо будет потом через функции БСП проверить на праздничные и выходные дни. Но это уже другой разговор.

Глеб Шахов

LexaK, могу я как-то присвоить значение константы допреквизиту справочника. Как мне к нему обратиться? если в нем не указано значение. Если

//Значит значение у меня есть в справочнике
РезультатТаблицаЗначений.Количество() > 0


А если пустая ТЗ, значит не указано, значит 0 и вот в этом случае мне надо присвоить Константы.ВашаКонстанта.Получить();

Как я могу обратиться к этому допреквизиту?


Теги:

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

Рейтинг@Mail.ru

Поиск