На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! Правила раздела:

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

Высказать своё мнение о модераторах раздела можно здесь: evGenius
Модераторы: evGenius
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Заполнение табличной части документа, 1С 8.2, управляемый интерфейс
    Помогите пожалуйста!!! Не знаю как решить следующую задачу :(
    Мне нужно, что бы при добавлении новой строки в табличную часть (добавляю я физ.лица) в соседнюю колонку автоматически прописывалась контактная информация этого физ лица.
    Все данные есть, не знаю как правильно написать код. Смогла только додуматься до того, что прописываться он будет в обработчике событий "ПриИзменении" :blush:
      Требую продолжения банкета.
      Цитата chychelko @
      Все данные есть, не знаю как правильно написать код.

      Где находятся данные на момент добавления? есть ли в табличной части колонка куда эти данные добавляются? побольше инфы.
      Цитата chychelko @
      в обработчике событий "ПриИзменении"

      что там происходит?
      Судя по обработчику версия 1С 8?
      и что за конфигурация? ЗУП? УПП? ??
      Сообщение отредактировано: Muxa_I -
        Цитата Muxa_I @
        Требую продолжения банкета.
        Цитата chychelko @
        Все данные есть, не знаю как правильно написать код.

        Где находятся данные на момент добавления? есть ли в табличной части колонка куда эти данные добавляются? побольше инфы.
        Цитата chychelko @
        в обработчике событий "ПриИзменении"

        что там происходит?
        Судя по обработчику версия 1С 8?
        и что за конфигурация? ЗУП? УПП? ??

        справочник, из которого берутся данные полностью заполнен, в нем есть "Телефон", вот этот "Телефон" мне в таблицу подтянуть и надо при выборе этого физ.лица. Колонка в табличной части предусмотрена. Там и там строковый тип данных.
        И да это 8.2

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

          Собрано на коленке с отвлечениями и не проверялось, но должно работать как один из вариантов
            Про запросы я знаю, это самое простое и самое громоздкое.
            В моем курином мозге отложилось то , что тоже самое можно выполнить каким-то другим способом, менее громоздким.
            Запрос - это хорошо, но не в денной ситуации. :oops:
              Цитата chychelko @
              Запрос - это хорошо, но не в денной ситуации.

              Почему?
              *Если ты кое в чем что-то не понимаешь, это еще не значит, что во всем остальном ты уже разобрался.
              *Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше.*
                Цитата Rust @

                Он большой получается, да и чисто внутреннее осознание того, что должно быть как то проще.

                Добавлено
                Параллельно возник еще один вопрос, может кто знает.
                Мне надо что бы объект "ВремяНачала" был равен какому-то определенному времени.
                Как я понимаю это можно реализовать примерно следующем образом:

                ВремяНачала ='00010101140101';

                Проблема в том что он мне на значение "ВремяНачала" передает 0001.01.01.00.00.00 (время по нулям)

                Если же я беру любую переменную и прописываю ей такой код, то он мне выдает верное значение (0001.01.01.14.01.01)

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

                Может я что-то не так делаю :crazy:
                  Цитата chychelko @
                  Он большой получается

                  Ну если исходить из принципа, что листинг любой функции или процедуры должен занимать не более двух экранов, то да.
                  где-то я такое слышал или читал.
                    Цитата Muxa_I @
                    Ну если исходить из принципа, что листинг любой функции или процедуры должен занимать не более двух экранов, то да.
                    где-то я такое слышал или читал.

                    Тут даже не в листинге дело, а в том, что нужен только один объект и из за него одного строить громоздкий запрос, как то не логично. Уж поймите меня правильно! :blink:
                      Цитата chychelko @
                      громоздкий запрос

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

                      Может работает, а может и нет. Попробовать можно. ;)
                      всё вышеприведенное можно объединить в 2 строки, если нужно.
                      Сообщение отредактировано: Muxa_I -
                        Цитата Muxa_I @
                        ExpandedWrap disabled
                          ТекущиеДанные = ЭлементыФормы.ТабличнаяЧастьДокумента.ТекущиеДанные;
                          ФизЛицоИзСправочника = ТекушиеДанные.Физлицо;
                          ТелефонИзСправочника = ФизЛицоИзСправочника.{ИмяРеквизитаТелефона};
                          ТекущиеДанные.Телефон = ТелефонИзСправочника;

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

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


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

                        В самом справочнике такой реквизит есть. :wall: Может я совсем чего-то не понимаю.
                          Я так полагаю, что в Текущих данных уже есть телефон :)

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

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

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

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

                          Прикреплённый файлПрикреплённый файл____.rar (31,61 Кбайт, скачиваний: 248)
                          Сообщение отредактировано: Muxa_I -
                            Все бы хорошо, но!!! Код у тебя написан в обычном приложении, а у меня управляемое, видимо поэтому ни чего и не получается :(

                            Добавлено
                            По логике 1 и 3 строка выполняются в разных местах. 1 на клиенте, 2 на сервере, их нужно как -то разбить на разные процедуры, но у меня мозгов не хватает как :crazy:
                              chychelko, выгрузи конфигурацию и прикрепи к сообщению. Без конфигурации будем воду в ступе толочь.
                              Если файл слишком большой - залей на какую нить файлопомойку и прикрепи ссылку
                              Сообщение отредактировано: Rust -
                              *Если ты кое в чем что-то не понимаешь, это еще не значит, что во всем остальном ты уже разобрался.
                              *Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше.*
                                ага. из-за этого. С управляемыми приложениями я не сталкивался. Так что пардон
                                Цитата
                                выгрузи конфигурацию и прикрепи к сообщению

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


                                [ Script Execution time: 0,1686 ]   [ 17 queries used ]   [ Generated: 18.12.14, 09:29 GMT ]  

                                Rambler's Top100