Родились сегодня:
lSemperFi


Лидеры рейтинга

ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

391

Россия, пос. Теплоозёрск, ЕАО


ID: 401284

Михаил Александров

Советник

379

Россия, Санкт-Петербург


ID: 401888

puporev

Профессор

215

Россия, Пермский край


ID: 400669

epimkin

Профессионал

111


ID: 405338

vovaromanov.jr

1-й класс

103


ID: 242862

Hunter7007

Мастер-Эксперт

29

Россия, Омск


ID: 137394

Megaloman

Мастер-Эксперт

25

Беларусь, Гомель


8.10.2

13.10.2021

JS: 2.10.2
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-10-27 22:16:01-standard


[неизвестная рассылка]

Администратор раздела: [неизвестный]

Консультация онлайн # 109104

Раздел: [неизвестная рассылка]
Автор вопроса: Александр Павлович
Дата: 12.11.2007, 19:00 Консультация закрыта
Поступило ответов: 3

Здравствуйте уважаемые эксперты.
1с 7.7
Есть документ с некоторым количеством колонок. Пускай К1,К2...
Мне нужно установить некое значение в колонку в зависимости от значения переменной Х="К1" или "К2"... Как мне в процедуре получить доступ к колонке имея значение Х. Перебор через если то иначе не предлагать.

Приложение:

Ответ # 193488 от Dmitry Stashenko
Здравствуйте, Александр Павлович!

Если я правильно вас понял, то речь идет о методе УстановитьАтрибут(). В вашем случае имея колонки К1 и К2, и переменную Х, которая содержит либо К1, либо К2, это выглядит так: УстановитьАтрибут(Х, Значение). Соответственно, частный случай для колонки К1 - это УстановитьАтрибут("К1", Значение). Прошу только учесть, что для документа помимо колонки еще важна строка, в которую производится запись значения.

Dmitry Stashenko

Посетитель
12.11.2007, 19:23
Ответ # 193494 от Астафьев Александр Николаевич
Здравствуйте, Александр Павлович! Создаем список значений как переменную для всего модуля т.е. в самом верху модуля пишем:
Перем сп;

В процедуре ПриОткрытии() пишем:
сп = СоздатьОбъект("СписокЗначений");
сп.ДобавитьЗначение("Проц_О","опт");
сп.ДобавитьЗначение("Проц_Мо","Мелкопт");
сп.ДобавитьЗначение("Проц_Р","розница");

Создаем Процедуру например:
Процедура ИнфоКолонки()
Поз = сп.НайтиЗначение(Форма.ТекущаяКолонка());
Если поз = 0 Тогда
Сообщить("ничего");
Иначе
сооб = ""; сп.ПолучитьЗначение(поз,сооб)
Сообщить(сооб);
КонецЕсли;
КонецПроцедуры

Честно говоря было плохо понятна связь вашей переменной Х="К1" или "К2"... и примера из приложения. Написал как понял вопрос. При достаточно большом количестве колонок в таблице документа код будет короче чем у Вас.

Астафьев Александр Николаевич

Посетитель
12.11.2007, 20:15
Ответ # 193562 от Ромашов Евгений Николаевич
Здравствуйте, Александр Павлович!

ПолучитьСтрокуПоНомеру(НомерСтроки);
ПолучитьАтрибут("Колонка"+к)

Ромашов Евгений Николаевич

Посетитель
13.11.2007, 07:35
Мини-форум консультации # 109104
Нет сообщений в мини-форуме
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела