Нужна колонка "Телефон контрагента"

1. qwerty45 5 15.05.12 19:59 Сейчас в теме
Всем доброго времени суток! УТ 10.3 на Платформе 8.2. Необходимо, чтобы в списке контрагентов отображалась колонка с телефонами контрагента и, соответственно была возможность поиска контрагента по номеру телефона. Подскажите как реализовать. Добавить на форму списка новую колонку не проблема, а вот как заставить 1С в этой новой колонке отображать номера телефонов... Внешние отчеты можно не предлагать.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Поручик 4677 15.05.12 23:47 Сейчас в теме
(1) Номеров телефонов в контактной информации может быть до ... много. Конспективно: для отображения дополнительной информации воспользуйтесь событием ПриПолученииДанных()
4. starjevschik 16.05.12 08:52 Сейчас в теме
(1) внешние отчеты тут не помогут. Чтобы вывести телефоны в колонку, придется дописать процедуры ПриПолученииДанных() или ПриВыводеСтроки() ((3) прав совершенно, что вы будете делать, когда телефонов много?). А для поиска придется писать отдельную функцию, и параллельно решить вопрос с разными способами записи телефона, жестко прописывать все шаблоны при записи телефона...
5. Поручик 4677 16.05.12 09:14 Сейчас в теме
(1)(4) В принципе, дополнительные колонки списка можно генерить динамически, кэшируя их количество и состав при начале работы системы, так как состав контактной информации в общем случае меняется очень редко.
2. Поручик 4677 15.05.12 23:44 Сейчас в теме
Перенесите тему в раздел Управление торговлей 10.3
6. dmitryburykin 8 16.05.12 09:23 Сейчас в теме
примерно так (надо дописать самостоятельно немного):

Функция ПолучитьМассивСсылокОформленияСтрок(ОформленияСтрок)

Массив = Новый Массив;

Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
// ЕСЛИ НУЖНО ВКЛЮЧАЕМ КОНТРОЛЬ НА ГРУППУ
Массив.Добавить(ОформлениеСтроки.Данныестроки.Ссылка);
КонецЦикла;

Возврат Массив;

КонецФункции // ПолучитьМассивСсылокОформленияСтрок(ОформленияСтрок)

Функция ПолучитьТаблицуОформленияСтрок(МассивСсылокСчетов)

Запрос = Новый Запрос;
Запрос.Текст =

//ЗДЕСЬ ПИШЕМ ЗАПРОС - ЧТО НУЖНО ПОЛУЧИТЬ (ТЕЛЕФОНЫ

Запрос.УстановитьПараметр("МассивСсылокСчетов", МассивСсылокСчетов);

Возврат Запрос.Выполнить().Выгрузить();

КонецФункции // ПолучитьСписокСсылок(ОформленияСтрок)()

Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)

МассивСсылокСчетов = ПолучитьМассивСсылокОформленияСтрок(ОформленияСтрок);
ТаблицаДанныхОформленияСтрок = ПолучитьТаблицуОформленияСтрок(МассивСсылокСчетов);

Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
Данныестроки = ОформлениеСтроки.Данныестроки;
СтрокаОформленияСтрок = ТаблицаДанныхОформленияСтрок.Найти(ОформлениеСтроки.Данныестроки.Ссылка, "Контрагент");

Если СтрокаОформленияСтрок = Неопределено Тогда
Продолжить;
КонецЕсли;
Телефоны = СтрокаОформленияСтрок.Телефоны;
ОформлениеСтроки.Ячейки.Телефоны.УстановитьТекст(Телефоны);
КонецЦикла;

КонецПроцедуры
shchegirev; qwerty45; +2 Ответить
7. qwerty45 5 16.05.12 09:24 Сейчас в теме
Из меня писатель никакой, только начинаю осваивать эту науку. Буду признателен, если поможете с кодом процедур и подскажите куда вставить.
8. kykysk 16.05.12 17:04 Сейчас в теме
добавить реквезит в справочник
внести его формусписока-
потом правой кнопкой на список -Найстроить список и поставить галочку на ваш реквезит .
вот и все тереть он будет отржаться.
9. qwerty45 5 17.05.12 09:15 Сейчас в теме
(8) kykysk, мало добавить реквизит в справочник и колонку на форму. этому реквизиту в справочнике еще и значение нужно присвоить и хотелось бы чтоб оно отражалось на форме во вновь добавленной колонке.
А то что вы советуете просто отобразит пустую колонку
10. qwerty45 5 17.05.12 15:59 Сейчас в теме
Люди добрые! Неужели это супер сложная задача и никто не сможет мне помочь?
11. Поручик 4677 17.05.12 16:03 Сейчас в теме
(10) А оно кому-то надо забесплатно возиться? Код тебе дали, куда воткнуть тоже сказали. Ты же хочешь полностью готовое. Кури учебники, мануалы или плати.
12. qwerty45 5 17.05.12 17:41 Сейчас в теме
Грубо, Поручик.
И спасибо for_infostart. Пока не получилось что хочу, буду дальше разбираться.
13. antonio5555 23 05.06.12 16:21 Сейчас в теме
Может тебе продублировать номера телефона контрагента в колонке комментарий. Можно попробовать автоматизировать этот процесс. Универсальным подбором и обработкой объектов.
14. qwerty45 5 05.06.12 19:03 Сейчас в теме
(13)Нет, не получится. Полем комментарий периодически пользуюсь по назначению.
Я чё-то туплю на этапе добавления колонки в форму.
Сделал следующее:
1) в справочник контрагент добавил реквизит "Телефон". В свойствах реквизита НЕ УДАЕТСЯ задать Тип связанный как-то с "ТипыКонтактнойИнформации.Телефон" поэтому осталось "строка"
2) добавил на форму списка колонку "Телефон" . В свойствах установил Элемент управления как "Поле ввода", Данные из списка выбрал "Телефон"
3) В модуль формы списка добавил процедуру:

Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
Для каждого ОформлениеСтроки из ОформленияСтрок Цикл
НаборЗаписей.Очистить();
УправлениеКонтактнойИнформацией.ПрочитатьКонтактнуюИнформацию(НаборЗаписей, ОформлениеСтроки.ДанныеСтроки.Ссылка);
Для Каждого Запись Из НаборЗаписей Цикл
Если Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
ОформлениеСтроки.Ячейки.Телефон.Значение = Запись.Представление;
КонецЕсли;
КонецЦикла;
КонецПроцедуры

Естественно 1С к этой процедуре даже обращаться не хочет. И, соответственно никакими ошибками не ругается. Не знаю куда копать...
15. AzzZ 08.06.12 15:20 Сейчас в теме
Радуют такие люди ;)
Хоть Поручик как правило грубоват, но по факту он частенько прав. Люди не знающие элементарный базис, хотят получить бесплатно готовое решение.

По задаче я бы сначала получил строковый список телефонов, т.к. их реально может быть много, ну а потом засунул бы значения этих строчек в эту колонку. Возможно прибавил туда же еще и комментарий из телефона, в нем тоже частенько пишут дополнительные мобильные.
Фраза: "Естественно 1С к этой процедуре даже обращаться не хочет." возникает скорей всего потому, что автор добавил скопированные строчки с форума в модуль формы, не воспользовавшись событиями самой формы. т.е. не установив связи. Что говорит о полном отсутствии базиса.
16. qwerty45 5 08.06.12 17:35 Сейчас в теме
(15)Вывод о полном отсутствии у меня базовых знаний программирования верен на все сто.
17. wwizard 7 21.06.12 03:49 Сейчас в теме
а у меня получилось, кажется я чтото начинаю понимать, спасибо поручику... за верные советы, когда некому помочь, а денег платить много - жалко, начинаешь копать сам, - иногда получается. Я вывел основной телефон контрагента по стандартной статье в 1С.
Potap0ff; +1 Ответить
18. wwizard 7 21.06.12 03:51 Сейчас в теме
объяснить врядли смогу, я даже не знаю на каком этапе оно заработало
19. qwerty45 5 21.06.12 12:11 Сейчас в теме
wwizard, а что за стандартная статья в 1С ?
20. serq82 8 22.06.12 15:05 Сейчас в теме
(19) qwerty45, получилось,не тормозит?я бы добавил реквизит засунул в форму документа и не парился...
21. ImpoS 26.06.12 13:18 Сейчас в теме
давно хотел до этой процедуры добраться, ))) я не один.спасибо
22. shchegirev 02.12.12 16:25 Сейчас в теме
А я сделал так:

Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

Контрагент = Справочники.Контрагенты.НайтиПоКоду(ДанныеСтроки.Код).Ссылка;

Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ФизЛицо", Контрагент);
Запрос.УстановитьПараметр("ТипКИ", Перечисления.ТипыКонтактнойИнформации.Телефон);
Запрос.УстановитьПараметр("ВидКИ", Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);

Запрос.Текст =
"ВЫБРАТЬ
| КонтактнаяИнформация.Объект,
| ПРЕДСТАВЛЕНИЕ(КонтактнаяИнформация.Объект),
| КонтактнаяИнформация.Тип,
| КонтактнаяИнформация.Вид,
| ПРЕДСТАВЛЕНИЕ(КонтактнаяИнформация.Вид),
| КонтактнаяИнформация.Представление
|ИЗ
| РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
|ГДЕ
| КонтактнаяИнформация.Объект = &ФизЛицо
| И КонтактнаяИнформация.Тип = &ТипКИ
| И КонтактнаяИнформация.Вид = &ВидКИ";

ТелефонКонтрагента = Запрос.Выполнить().Выгрузить();

Для каждого Строка из ТелефонКонтрагента Цикл
Телефон = Строка.Представление;
КонецЦикла;

ОформлениеСтроки.Ячейки.Телефон.УстановитьТекст(Телефон);

КонецПроцедуры

Соответственно добавляется реквизит Телефон и одноименный столбец в форме списка.
qwerty45; +1 Ответить
23. qwerty45 5 03.12.12 21:24 Сейчас в теме
(22)shchegirev, ай молодец. Работает!
24. master_yoda 27 03.12.12 23:43 Сейчас в теме
А поруччик то жжет напалмом......
Вобщем можно пойти след путем, хотя не факт что этот путь самый быстродейственный
Скорее всего телефон контрагента хранится в регистре сведений контактная информация...
на форме списка справочника делаем колонку "НомерТелефона"
Далее в можуле формы в обработчике "ПривыводеСтроки" вставляем запросец который дергает из регистра контактная информация "НомерТелефона" с установленным параметром текущий контрагент....
а далее результат запроса возвращаем в эту колонку на форме с помощью ЗаполнитьЗначенияСвоийств()
главное имя колонки в результате запроса должно быть равно имени колонки на форме
25. AlexO 135 03.12.12 23:48 Сейчас в теме
(24) master_yoda,
можно как угодно и что угодно.
Совет дали, а "от и до".... накладно все разъяснять.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот