Заполнение табличной части документа, 1С 8.2, управляемый интерфейс![]() |
||
| Наши проекты: | · Журнал · Алгоритмы · Естественные Науки · Wiki · DRKB · Помощь проекту | |
ПРАВИЛА
|
FAQ |
Помощь |
Поиск |
Участники |
Календарь |
Избранное |
DigiMania |
RSS
|
| Здравствуйте, Гость [72.44.48.122] | Не авторизованы? · Регистрация · Выслать повторно письмо для активации · Что даёт регистрация на форуме? |
Форум на Исходниках.RU Системы, Сети, Технологии 1С: Проблемы и решения
|
|
Правила раздела:| Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) | Новое голосование |
Заполнение табличной части документа, 1С 8.2, управляемый интерфейс| chychelko |
Сообщ. #1, 22.03.11, 11:22
|
|
Unregistered
|
Помогите пожалуйста!!! Не знаю как решить следующую задачу
Мне нужно, что бы при добавлении новой строки в табличную часть (добавляю я физ.лица) в соседнюю колонку автоматически прописывалась контактная информация этого физ лица. Все данные есть, не знаю как правильно написать код. Смогла только додуматься до того, что прописываться он будет в обработчике событий "ПриИзменении" |
| Muxa_I |
Сообщ. #2, 22.03.11, 11:38
|
Junior![]() Профиль · PM Рейтинг (т): 2 |
Требую продолжения банкета.
Цитата (chychelko @ 22.03.11, 11:22) Все данные есть, не знаю как правильно написать код. Где находятся данные на момент добавления? есть ли в табличной части колонка куда эти данные добавляются? побольше инфы. Цитата (chychelko @ 22.03.11, 11:22) в обработчике событий "ПриИзменении" что там происходит? Судя по обработчику версия 1С 8? и что за конфигурация? ЗУП? УПП? ?? Сообщение отредактировано: Muxa_I - 22.03.11, 11:40 |
| chychelko |
Сообщ. #3, 22.03.11, 11:44
|
|
Unregistered
|
Цитата (Muxa_I @ 22.03.11, 11:38) Требую продолжения банкета. Цитата (chychelko @ 22.03.11, 11:22) Все данные есть, не знаю как правильно написать код. Где находятся данные на момент добавления? есть ли в табличной части колонка куда эти данные добавляются? побольше инфы. Цитата (chychelko @ 22.03.11, 11:22) в обработчике событий "ПриИзменении" что там происходит? Судя по обработчику версия 1С 8? и что за конфигурация? ЗУП? УПП? ?? справочник, из которого берутся данные полностью заполнен, в нем есть "Телефон", вот этот "Телефон" мне в таблицу подтянуть и надо при выборе этого физ.лица. Колонка в табличной части предусмотрена. Там и там строковый тип данных. И да это 8.2 Добавлено 22.03.11, 11:50 Конфигурация самописная |
| Muxa_I |
Сообщ. #4, 22.03.11, 12:24
|
Junior![]() Профиль · PM Рейтинг (т): 2 |
Ну можно "лапотный" способ, Если ФизЛицо НЕ "строка", а СправочникСсылка. Например:
![]() ![]() ТекущиеДанные = ЭлементыФормы.ТабличнаяЧастьДокумента.ТекущиеДанные;// что там нужно Запрос = Новый Запрос; Запрос.УстановитьПараметр("парамФизЛицо",ТекущиеДанные.Физлицо); // ФизЛицо из строки таблицы Запрос.Текст = "ВЫБРАТЬ {вбрать все что нужно в том числе и телефон} ИЗ Спарвочник.ФизЛицо ГДЕ Спарвочник.ФизЛицо = &парамФизлицо"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ТекущиеДанные.Телефон = Выборка.Телефон; КонецЦикла; Собрано на коленке с отвлечениями и не проверялось, но должно работать как один из вариантов |
| chychelko |
Сообщ. #5, 22.03.11, 12:40
|
|
Unregistered
|
Про запросы я знаю, это самое простое и самое громоздкое.
В моем курином мозге отложилось то , что тоже самое можно выполнить каким-то другим способом, менее громоздким. Запрос - это хорошо, но не в денной ситуации. |
|
Сообщ. #6, 22.03.11, 13:03
|
|
![]() Profi ![]() ![]() ![]() ![]() ![]() Профиль · PM Поощрения: 2 Dgm Рейтинг (т): 103 |
Цитата (chychelko @ 22.03.11, 12:40) Запрос - это хорошо, но не в денной ситуации. Почему? ___________ *Если ты кое в чем что-то не понимаешь, это еще не значит, что во всем остальном ты уже разобрался.
*Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше.* |
| chychelko |
Сообщ. #7, 22.03.11, 13:05
|
|
Unregistered
|
Цитата (Rust @ 22.03.11, 13:03) Он большой получается, да и чисто внутреннее осознание того, что должно быть как то проще. Добавлено 22.03.11, 13:15 Параллельно возник еще один вопрос, может кто знает. Мне надо что бы объект "ВремяНачала" был равен какому-то определенному времени. Как я понимаю это можно реализовать примерно следующем образом: ВремяНачала ='00010101140101'; Проблема в том что он мне на значение "ВремяНачала" передает 0001.01.01.00.00.00 (время по нулям) Если же я беру любую переменную и прописываю ей такой код, то он мне выдает верное значение (0001.01.01.14.01.01) ВремяНачала: тип-Дата, состав даты-Время. Может я что-то не так делаю |
| Muxa_I |
Сообщ. #8, 22.03.11, 13:32
|
Junior![]() Профиль · PM Рейтинг (т): 2 |
Цитата (chychelko @ 22.03.11, 13:05) Он большой получается Ну если исходить из принципа, что листинг любой функции или процедуры должен занимать не более двух экранов, то да. где-то я такое слышал или читал. |
| chychelko |
Сообщ. #9, 22.03.11, 13:37
|
|
Unregistered
|
Цитата (Muxa_I @ 22.03.11, 13:32) Ну если исходить из принципа, что листинг любой функции или процедуры должен занимать не более двух экранов, то да. где-то я такое слышал или читал. Тут даже не в листинге дело, а в том, что нужен только один объект и из за него одного строить громоздкий запрос, как то не логично. Уж поймите меня правильно! |
| Muxa_I |
Сообщ. #10, 22.03.11, 13:56
|
Junior![]() Профиль · PM Рейтинг (т): 2 |
Цитата (chychelko @ 22.03.11, 13:37) громоздкий запрос Ещё как вариант попробовать ![]() ![]() ТекущиеДанные = ЭлементыФормы.ТабличнаяЧастьДокумента.ТекущиеДанные; ФизЛицоИзСправочника = ТекушиеДанные.Физлицо; ТелефонИзСправочника = ФизЛицоИзСправочника.{ИмяРеквизитаТелефона}; ТекущиеДанные.Телефон = ТелефонИзСправочника; Может работает, а может и нет. Попробовать можно. ![]() всё вышеприведенное можно объединить в 2 строки, если нужно. Сообщение отредактировано: Muxa_I - 22.03.11, 13:57 |
| chychelko |
Сообщ. #11, 22.03.11, 15:11
|
|
Unregistered
|
Цитата (Muxa_I @ 22.03.11, 13:56) ![]() ![]() ТекущиеДанные = ЭлементыФормы.ТабличнаяЧастьДокумента.ТекущиеДанные; ФизЛицоИзСправочника = ТекушиеДанные.Физлицо; ТелефонИзСправочника = ФизЛицоИзСправочника.{ИмяРеквизитаТелефона}; ТекущиеДанные.Телефон = ТелефонИзСправочника; Все бы ничего, он ругается на имя реквизита: ![]() ![]() ТекущиеДанные = Элементы.Обзвон.ТекущиеДанные; ФизЛицоИзСправочника = ТекущиеДанные.ФизЛицо.Телефон; ТекущиеДанные.КонтактнаяИнформация = ТекущиеДанные; ОШИБКА!!! {Документ.ОбзвонКлиентов.Форма.ФормаДокумента.Форма(117)}: Поле объекта не обнаружено (Телефон) ФизЛицоИзСправочника = ТекущиеДанные.ФизЛицо.Телефон; В самом справочнике такой реквизит есть. Может я совсем чего-то не понимаю. |
| Muxa_I |
Сообщ. #12, 23.03.11, 04:46
|
Junior![]() Профиль · PM Рейтинг (т): 2 |
![]() Поставь точку останова на ТекущиеДанные = Элементы.Обзвон.ТекущиеДанные; Посмотри в отладчике содержимое текущих данных (по F9; F2). И если я прав в первом предположении, то в строке ФизЛицоИзСправочника = ТекущиеДанные.ФизЛицо.Телефон; убери ФизЛицо Я не знаю каким образом организован справочник, но посмотрим что мы делаем в коде: ![]() ![]() 1 ТекущиеДанные = ЭлементыФормы.ТабличнаяЧастьДокумента.ТекущиеДанные; 2 ФизЛицоИзСправочника = ТекушиеДанные.Физлицо; 3 ТелефонИзСправочника = ФизЛицоИзСправочника.{ИмяРеквизитаТелефона}; 4 ТекущиеДанные.Телефон = ТелефонИзСправочника; Итак строка 1 - позицианируемся на строке табличной части документа и присваиваем переменной ТекущиеДанные данные, находящиеся в строке. В основном нас интересует ФизЛицо. строка 2 - переменной ФизЛицоИзСправочника мы присваиваем это самое физлицо. тут небольшое отступление: Если в табличной части документа, то бишь "Обзвон", реквизит "физлицо" это строка, то действовать таким образом не получится, т.к. во второй строке присваивается, строго говоря ссылка, указывающая на элемент справочника. (фух) строка 3 - переменной ТелефонИзСправочника мы присваиваем значение реквизита элемента справочника (мы помним, что ФизЛицоИзСправочника это ссылка). строка 4 - вносим телефон в строку табличной части документа (ТекущиеДанные), т.е. реквизиту телефон присваиваем значение переменной ТелефонИзСправочника. У реквизита "Телефон" должен быть тип "Строка". Как-то так. Смотри внимательно. ![]() Если хочешь посмотри в аттаче простейшая конфигурация из одного документа с одной процедурой и одного справочника. Прикреплённый файл: ____.rar (31,61 Кбайт, скачиваний: 153) Сообщение отредактировано: Muxa_I - 23.03.11, 05:34 |
| chychelko |
Сообщ. #13, 23.03.11, 07:44
|
|
Unregistered
|
Все бы хорошо, но!!! Код у тебя написан в обычном приложении, а у меня управляемое, видимо поэтому ни чего и не получается
Добавлено 23.03.11, 07:59 По логике 1 и 3 строка выполняются в разных местах. 1 на клиенте, 2 на сервере, их нужно как -то разбить на разные процедуры, но у меня мозгов не хватает как |
|
Сообщ. #14, 23.03.11, 08:24
|
|
![]() Profi ![]() ![]() ![]() ![]() ![]() Профиль · PM Поощрения: 2 Dgm Рейтинг (т): 103 |
chychelko, выгрузи конфигурацию и прикрепи к сообщению. Без конфигурации будем воду в ступе толочь.
Если файл слишком большой - залей на какую нить файлопомойку и прикрепи ссылку Сообщение отредактировано: Rust - 23.03.11, 08:25 ___________ *Если ты кое в чем что-то не понимаешь, это еще не значит, что во всем остальном ты уже разобрался.
*Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше.* |
| Muxa_I |
Сообщ. #15, 23.03.11, 08:26
|
Junior![]() Профиль · PM Рейтинг (т): 2 |
ага. из-за этого. С управляемыми приложениями я не сталкивался. Так что пардон
Цитата выгрузи конфигурацию и прикрепи к сообщению поддерживаю Сообщение отредактировано: Muxa_I - 23.03.11, 08:28 |
Форум на Исходниках.RU · 1С: Проблемы и решения |
|||
|
|||