На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS RSS
>  Форум на Исходниках.RU
       Системы, Сети, Технологии
         1С: Проблемы и решения
msm.ru
! Правила раздела:

  • Перед тем, как задать вопрос, желательно почитать документацию и воспользоваться поиском.
  • Когда задаёте вопрос, то обязательно указывайте платформу (7.7, 8.0, 8.1, 8.2, etc), причем желательно в заголовке. Если речь идёт о типовой конфигурации, то указывайте её название и релиз. Текущие версии можно посмотреть здесь.
  • Ещё раз напоминаем о необходимости соблюдать не только правила, но и законы. Уважайте авторские права.

Высказать своё мнение о модераторах раздела можно здесь: evGenius
Модераторы: evGenius
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )   Новое голосование

> Заполнение табличной части документа, 1С 8.2, управляемый интерфейс
chychelko
Сообщ. #1, 22.03.11, 11:22
Unregistered

Помогите пожалуйста!!! Не знаю как решить следующую задачу :(
Мне нужно, что бы при добавлении новой строки в табличную часть (добавляю я физ.лица) в соседнюю колонку автоматически прописывалась контактная информация этого физ лица.
Все данные есть, не знаю как правильно написать код. Смогла только додуматься до того, что прописываться он будет в обработчике событий "ПриИзменении" :blush:
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

Ну можно "лапотный" способ, Если ФизЛицо НЕ "строка", а СправочникСсылка. Например:
ExpandedWrap disabled
    ТекущиеДанные = ЭлементыФормы.ТабличнаяЧастьДокумента.ТекущиеДанные;// что там нужно
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("парамФизЛицо",ТекущиеДанные.Физлицо); // ФизЛицо из строки таблицы
    Запрос.Текст =
    "ВЫБРАТЬ
    {вбрать все что нужно в том числе и телефон}
    ИЗ
    Спарвочник.ФизЛицо
    ГДЕ
    Спарвочник.ФизЛицо = &парамФизлицо";
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    ТекущиеДанные.Телефон = Выборка.Телефон;
    КонецЦикла;

Собрано на коленке с отвлечениями и не проверялось, но должно работать как один из вариантов
chychelko
Сообщ. #5, 22.03.11, 12:40
Unregistered

Про запросы я знаю, это самое простое и самое громоздкое.
В моем курином мозге отложилось то , что тоже самое можно выполнить каким-то другим способом, менее громоздким.
Запрос - это хорошо, но не в денной ситуации. :oops:
Profi Rust
Сообщ. #6, 22.03.11, 13:03

Profi
*****
Профиль · PM


Цитата (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)

ВремяНачала: тип-Дата, состав даты-Время.

Может я что-то не так делаю :crazy:
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)
Ну если исходить из принципа, что листинг любой функции или процедуры должен занимать не более двух экранов, то да.
где-то я такое слышал или читал.

Тут даже не в листинге дело, а в том, что нужен только один объект и из за него одного строить громоздкий запрос, как то не логично. Уж поймите меня правильно! :blink:
Muxa_I
Сообщ. #10, 22.03.11, 13:56
Junior
*
Профиль · PM

Рейтинг (т): 2

Цитата (chychelko @ 22.03.11, 13:37)
громоздкий запрос

Ещё как вариант попробовать
ExpandedWrap disabled
    ТекущиеДанные = ЭлементыФормы.ТабличнаяЧастьДокумента.ТекущиеДанные;
    ФизЛицоИзСправочника = ТекушиеДанные.Физлицо;
    ТелефонИзСправочника = ФизЛицоИзСправочника.{ИмяРеквизитаТелефона};
    ТекущиеДанные.Телефон = ТелефонИзСправочника;

Может работает, а может и нет. Попробовать можно. ;)
всё вышеприведенное можно объединить в 2 строки, если нужно.

Сообщение отредактировано: Muxa_I - 22.03.11, 13:57
chychelko
Сообщ. #11, 22.03.11, 15:11
Unregistered

Цитата (Muxa_I @ 22.03.11, 13:56)
ExpandedWrap disabled
    ТекущиеДанные = ЭлементыФормы.ТабличнаяЧастьДокумента.ТекущиеДанные;
    ФизЛицоИзСправочника = ТекушиеДанные.Физлицо;
    ТелефонИзСправочника = ФизЛицоИзСправочника.{ИмяРеквизитаТелефона};
    ТекущиеДанные.Телефон = ТелефонИзСправочника;

Все бы ничего, он ругается на имя реквизита:

ExpandedWrap disabled
    ТекущиеДанные = Элементы.Обзвон.ТекущиеДанные;
    ФизЛицоИзСправочника = ТекущиеДанные.ФизЛицо.Телефон;
    ТекущиеДанные.КонтактнаяИнформация = ТекущиеДанные;


ОШИБКА!!!
{Документ.ОбзвонКлиентов.Форма.ФормаДокумента.Форма(117)}: Поле объекта не обнаружено (Телефон)
ФизЛицоИзСправочника = ТекущиеДанные.ФизЛицо.Телефон;

В самом справочнике такой реквизит есть. :wall: Может я совсем чего-то не понимаю.
Muxa_I
Сообщ. #12, 23.03.11, 04:46
Junior
*
Профиль · PM

Рейтинг (т): 2

Я так полагаю, что в Текущих данных уже есть телефон :)

Поставь точку останова на
ТекущиеДанные = Элементы.Обзвон.ТекущиеДанные;
Посмотри в отладчике содержимое текущих данных (по F9; F2).
И если я прав в первом предположении, то в строке
ФизЛицоИзСправочника = ТекущиеДанные.ФизЛицо.Телефон;
убери ФизЛицо ;)

Я не знаю каким образом организован справочник, но
посмотрим что мы делаем в коде:
ExpandedWrap disabled
    1      ТекущиеДанные = ЭлементыФормы.ТабличнаяЧастьДокумента.ТекущиеДанные;
    2      ФизЛицоИзСправочника = ТекушиеДанные.Физлицо;
    3      ТелефонИзСправочника = ФизЛицоИзСправочника.{ИмяРеквизитаТелефона};
    4      ТекущиеДанные.Телефон = ТелефонИзСправочника;

Итак
строка 1 - позицианируемся на строке табличной части документа и присваиваем переменной ТекущиеДанные данные, находящиеся в строке.
В основном нас интересует ФизЛицо.
строка 2 - переменной ФизЛицоИзСправочника мы присваиваем это самое физлицо.
тут небольшое отступление: Если в табличной части документа, то бишь "Обзвон", реквизит "физлицо" это строка, то действовать таким образом не получится, т.к. во второй строке присваивается, строго говоря ссылка, указывающая на элемент справочника. (фух)
строка 3 - переменной ТелефонИзСправочника мы присваиваем значение реквизита элемента справочника (мы помним, что ФизЛицоИзСправочника это ссылка).
строка 4 - вносим телефон в строку табличной части документа (ТекущиеДанные), т.е. реквизиту телефон присваиваем значение переменной ТелефонИзСправочника. У реквизита "Телефон" должен быть тип "Строка".
Как-то так. Смотри внимательно. ;)

Если хочешь посмотри в аттаче простейшая конфигурация из одного документа с одной процедурой и одного справочника.

Прикреплённый файл: Прикреплённый файл____.rar (31,61 Кбайт, скачиваний: 213)

Сообщение отредактировано: Muxa_I - 23.03.11, 05:34
chychelko
Сообщ. #13, 23.03.11, 07:44
Unregistered

Все бы хорошо, но!!! Код у тебя написан в обычном приложении, а у меня управляемое, видимо поэтому ни чего и не получается :(

Добавлено 23.03.11, 07:59
По логике 1 и 3 строка выполняются в разных местах. 1 на клиенте, 2 на сервере, их нужно как -то разбить на разные процедуры, но у меня мозгов не хватает как :crazy:
Profi Rust
Сообщ. #14, 23.03.11, 08:24

Profi
*****
Профиль · PM


chychelko, выгрузи конфигурацию и прикрепи к сообщению. Без конфигурации будем воду в ступе толочь.
Если файл слишком большой - залей на какую нить файлопомойку и прикрепи ссылку

Сообщение отредактировано: Rust - 23.03.11, 08:25
___________
*Если ты кое в чем что-то не понимаешь, это еще не значит, что во всем остальном ты уже разобрался.
*Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше.*
Muxa_I
Сообщ. #15, 23.03.11, 08:26
Junior
*
Профиль · PM

Рейтинг (т): 2

ага. из-за этого. С управляемыми приложениями я не сталкивался. Так что пардон
Цитата
выгрузи конфигурацию и прикрепи к сообщению

поддерживаю :yes:

Сообщение отредактировано: Muxa_I - 23.03.11, 08:28
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:

> Форум на Исходниках.RU · 1С: Проблемы и решения

Страницы: (2) [1] 2  все Новое голосование


[ Script Execution time: 0,1852 ]   [ 17 queries used ]   [ Generated: 18.04.14, 18:11 GMT ]  

Rambler's Top100