Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.224.39.32] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Помогите пожалуйста!!! Не знаю как решить следующую задачу
Мне нужно, что бы при добавлении новой строки в табличную часть (добавляю я физ.лица) в соседнюю колонку автоматически прописывалась контактная информация этого физ лица. Все данные есть, не знаю как правильно написать код. Смогла только додуматься до того, что прописываться он будет в обработчике событий "ПриИзменении" |
Сообщ.
#2
,
|
|
|
Требую продолжения банкета.
Цитата chychelko @ Все данные есть, не знаю как правильно написать код. Где находятся данные на момент добавления? есть ли в табличной части колонка куда эти данные добавляются? побольше инфы. Цитата chychelko @ в обработчике событий "ПриИзменении" что там происходит? Судя по обработчику версия 1С 8? и что за конфигурация? ЗУП? УПП? ?? |
Сообщ.
#3
,
|
|
|
Цитата Muxa_I @ Требую продолжения банкета. Цитата chychelko @ Все данные есть, не знаю как правильно написать код. Где находятся данные на момент добавления? есть ли в табличной части колонка куда эти данные добавляются? побольше инфы. Цитата chychelko @ в обработчике событий "ПриИзменении" что там происходит? Судя по обработчику версия 1С 8? и что за конфигурация? ЗУП? УПП? ?? справочник, из которого берутся данные полностью заполнен, в нем есть "Телефон", вот этот "Телефон" мне в таблицу подтянуть и надо при выборе этого физ.лица. Колонка в табличной части предусмотрена. Там и там строковый тип данных. И да это 8.2 Добавлено Конфигурация самописная |
Сообщ.
#4
,
|
|
|
Ну можно "лапотный" способ, Если ФизЛицо НЕ "строка", а СправочникСсылка. Например:
ТекущиеДанные = ЭлементыФормы.ТабличнаяЧастьДокумента.ТекущиеДанные;// что там нужно Запрос = Новый Запрос; Запрос.УстановитьПараметр("парамФизЛицо",ТекущиеДанные.Физлицо); // ФизЛицо из строки таблицы Запрос.Текст = "ВЫБРАТЬ {вбрать все что нужно в том числе и телефон} ИЗ Спарвочник.ФизЛицо ГДЕ Спарвочник.ФизЛицо = &парамФизлицо"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ТекущиеДанные.Телефон = Выборка.Телефон; КонецЦикла; Собрано на коленке с отвлечениями и не проверялось, но должно работать как один из вариантов |
Сообщ.
#5
,
|
|
|
Про запросы я знаю, это самое простое и самое громоздкое.
В моем курином мозге отложилось то , что тоже самое можно выполнить каким-то другим способом, менее громоздким. Запрос - это хорошо, но не в денной ситуации. |
Сообщ.
#6
,
|
|
|
Цитата chychelko @ Запрос - это хорошо, но не в денной ситуации. Почему? |
Сообщ.
#7
,
|
|
|
Цитата Rust @ Он большой получается, да и чисто внутреннее осознание того, что должно быть как то проще. Добавлено Параллельно возник еще один вопрос, может кто знает. Мне надо что бы объект "ВремяНачала" был равен какому-то определенному времени. Как я понимаю это можно реализовать примерно следующем образом: ВремяНачала ='00010101140101'; Проблема в том что он мне на значение "ВремяНачала" передает 0001.01.01.00.00.00 (время по нулям) Если же я беру любую переменную и прописываю ей такой код, то он мне выдает верное значение (0001.01.01.14.01.01) ВремяНачала: тип-Дата, состав даты-Время. Может я что-то не так делаю |
Сообщ.
#8
,
|
|
|
Цитата chychelko @ Он большой получается Ну если исходить из принципа, что листинг любой функции или процедуры должен занимать не более двух экранов, то да. где-то я такое слышал или читал. |
Сообщ.
#9
,
|
|
|
Цитата Muxa_I @ Ну если исходить из принципа, что листинг любой функции или процедуры должен занимать не более двух экранов, то да. где-то я такое слышал или читал. Тут даже не в листинге дело, а в том, что нужен только один объект и из за него одного строить громоздкий запрос, как то не логично. Уж поймите меня правильно! |
Сообщ.
#10
,
|
|
|
Цитата chychelko @ громоздкий запрос Ещё как вариант попробовать ТекущиеДанные = ЭлементыФормы.ТабличнаяЧастьДокумента.ТекущиеДанные; ФизЛицоИзСправочника = ТекушиеДанные.Физлицо; ТелефонИзСправочника = ФизЛицоИзСправочника.{ИмяРеквизитаТелефона}; ТекущиеДанные.Телефон = ТелефонИзСправочника; Может работает, а может и нет. Попробовать можно. всё вышеприведенное можно объединить в 2 строки, если нужно. |
Сообщ.
#11
,
|
|
|
Цитата Muxa_I @ ТекущиеДанные = ЭлементыФормы.ТабличнаяЧастьДокумента.ТекущиеДанные; ФизЛицоИзСправочника = ТекушиеДанные.Физлицо; ТелефонИзСправочника = ФизЛицоИзСправочника.{ИмяРеквизитаТелефона}; ТекущиеДанные.Телефон = ТелефонИзСправочника; Все бы ничего, он ругается на имя реквизита: ТекущиеДанные = Элементы.Обзвон.ТекущиеДанные; ФизЛицоИзСправочника = ТекущиеДанные.ФизЛицо.Телефон; ТекущиеДанные.КонтактнаяИнформация = ТекущиеДанные; ОШИБКА!!! {Документ.ОбзвонКлиентов.Форма.ФормаДокумента.Форма(117)}: Поле объекта не обнаружено (Телефон) ФизЛицоИзСправочника = ТекущиеДанные.ФизЛицо.Телефон; В самом справочнике такой реквизит есть. Может я совсем чего-то не понимаю. |
Сообщ.
#12
,
|
|
|
Поставь точку останова на ТекущиеДанные = Элементы.Обзвон.ТекущиеДанные; Посмотри в отладчике содержимое текущих данных (по F9; F2). И если я прав в первом предположении, то в строке ФизЛицоИзСправочника = ТекущиеДанные.ФизЛицо.Телефон; убери ФизЛицо Я не знаю каким образом организован справочник, но посмотрим что мы делаем в коде: 1 ТекущиеДанные = ЭлементыФормы.ТабличнаяЧастьДокумента.ТекущиеДанные; 2 ФизЛицоИзСправочника = ТекушиеДанные.Физлицо; 3 ТелефонИзСправочника = ФизЛицоИзСправочника.{ИмяРеквизитаТелефона}; 4 ТекущиеДанные.Телефон = ТелефонИзСправочника; Итак строка 1 - позицианируемся на строке табличной части документа и присваиваем переменной ТекущиеДанные данные, находящиеся в строке. В основном нас интересует ФизЛицо. строка 2 - переменной ФизЛицоИзСправочника мы присваиваем это самое физлицо. тут небольшое отступление: Если в табличной части документа, то бишь "Обзвон", реквизит "физлицо" это строка, то действовать таким образом не получится, т.к. во второй строке присваивается, строго говоря ссылка, указывающая на элемент справочника. (фух) строка 3 - переменной ТелефонИзСправочника мы присваиваем значение реквизита элемента справочника (мы помним, что ФизЛицоИзСправочника это ссылка). строка 4 - вносим телефон в строку табличной части документа (ТекущиеДанные), т.е. реквизиту телефон присваиваем значение переменной ТелефонИзСправочника. У реквизита "Телефон" должен быть тип "Строка". Как-то так. Смотри внимательно. Если хочешь посмотри в аттаче простейшая конфигурация из одного документа с одной процедурой и одного справочника. Прикреплённый файл____.rar (31,61 Кбайт, скачиваний: 396) |
Сообщ.
#13
,
|
|
|
Все бы хорошо, но!!! Код у тебя написан в обычном приложении, а у меня управляемое, видимо поэтому ни чего и не получается
Добавлено По логике 1 и 3 строка выполняются в разных местах. 1 на клиенте, 2 на сервере, их нужно как -то разбить на разные процедуры, но у меня мозгов не хватает как |
Сообщ.
#14
,
|
|
|
chychelko, выгрузи конфигурацию и прикрепи к сообщению. Без конфигурации будем воду в ступе толочь.
Если файл слишком большой - залей на какую нить файлопомойку и прикрепи ссылку |
Сообщ.
#15
,
|
|
|
ага. из-за этого. С управляемыми приложениями я не сталкивался. Так что пардон
Цитата выгрузи конфигурацию и прикрепи к сообщению поддерживаю |