8.х Заполнение реквизитов ТЧ

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем NewLife89, 1 июн 2015.

  1. TopicStarter Overlay
    NewLife89
    Offline

    NewLife89 Опытный в 1С

    Регистрация:
    4 дек 2014
    Сообщения:
    63
    Симпатии:
    1
    Баллы:
    29
    Добрый день!
    Ситуация следующая,
    Есть Запрос с итогами по номеру строки.
    Нужно заполнить в ТЧ колонку реквизита. Как сделать что то не очень понятно(
    Вот пример:
    В результате запроса вот такая конструкция.

    строка 1яблоко цена документ1
    строка 1 яблоко цена документ 2

    в Колонку я хочу вывести строка 1 яблоко цена (документ1,Документ2) - список значений.

    *Запрос

    Пока ВыборкаНомерСтроки.Следующий() Цикл

    ВыборкаДетальныеЗаписи = ВыборкаНомерСтроки.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл


    КонецЦикла;
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Ну это нужно чтобы у Вас в табличной части был реквизит с типом значения СписокЗначений. Потом в цикле присвоить значение.
  3. TopicStarter Overlay
    NewLife89
    Offline

    NewLife89 Опытный в 1С

    Регистрация:
    4 дек 2014
    Сообщения:
    63
    Симпатии:
    1
    Баллы:
    29
    Я так и сделал, но что то у меня заполняет все колонки одним значением.(последним в цикле).
    Список = Новый СписокЗначений;
    Если ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.Вид) Тогда
    Список.Добавить(ВыборкаДетальныеЗаписи.Вид);
    КонецЕсли;

    Это во втором цикле, а в пером поиск по номеру строки.
  4. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну мое мнение что запрос надо переделать на вот такой вид
    строка 1
    яблоко
    цена
    документ1
    документ 2

    а затем обходи выборки с учетом пгруппировок и все
    Заходите в певую группировку, добавили Строку.во вторую добавили яблоко, в третью, цену в четвертой цикл собрали список значей по окончании цкла пристовили реквизиту
  5. TopicStarter Overlay
    NewLife89
    Offline

    NewLife89 Опытный в 1С

    Регистрация:
    4 дек 2014
    Сообщения:
    63
    Симпатии:
    1
    Баллы:
    29
    Вы подскажите, что не так?) Почему присваивает всем строкам последние значение.. Я может не там ищу?! (
    НУ и не совсем понятно чем плох вариант
    строка1
    строка 1 яблоко Док1
    строка 1 яблоко Док2
  6. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Как Вы понимаете какую именно строку в ТЧ нужно заполнить с какой то именно строкой из вашего запроса? Какие то поля должны быть одинаковыми? Ваши яблоки и строка1 мне ничего не дали.
  7. Николаич87
    Offline

    Николаич87 Опытный в 1С

    Регистрация:
    1 апр 2015
    Сообщения:
    122
    Симпатии:
    4
    Баллы:
    29
    Код:
    Список.Добавить(ВыборкаДетальныеЗаписи.Вид);
    может вы добавляете каждый раз одно и тоже значение? тем самым перезапись
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну смотриет Вы написали код

    Список = Новый СписокЗначений;
    Если ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.Вид) Тогда
    Список.Добавить(ВыборкаДетальныеЗаписи.Вид);
    КонецЕсли;

    У Вас в самом конце КонецЕсли;

    Т.е Список = Новый СписокЗначений; у Вас в цикле
    т.е каждый раз вы создаете(пересоздаете,ощищаете) новый список значений
  9. TopicStarter Overlay
    NewLife89
    Offline

    NewLife89 Опытный в 1С

    Регистрация:
    4 дек 2014
    Сообщения:
    63
    Симпатии:
    1
    Баллы:
    29
    В запросе итоги по номеру строки, по ней и ищу в ТЧ необходимую строку для заполнения.
    --- Объединение сообщений, 1 июн 2015 ---
    Нет, до циклов. так написал просто. В цикле только чищу список.
  10. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Посмотритет мой пост выше - Вы список ощищаете, создавая новый
    --- Объединение сообщений, 1 июн 2015 ---
    Тогда я не понимаю зачем писать нам код который неправильный.
  11. TopicStarter Overlay
    NewLife89
    Offline

    NewLife89 Опытный в 1С

    Регистрация:
    4 дек 2014
    Сообщения:
    63
    Симпатии:
    1
    Баллы:
    29
    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаНомерСтроки = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Список = Новый СписокЗначений;
    НоваяТз = Объект.ТЧ.Выгрузить();

    Пока ВыборкаНомерСтроки.Следующий() Цикл

    ВыборкаДетальныеЗаписи = ВыборкаНомерСтроки.Выбрать();
    Список.Очистить();
    Кол = 0;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Если ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.Вид) Тогда
    Список.Добавить(ВыборкаДетальныеЗаписи.Вид);
    Кол = Кол + 1;
    КонецЕсли;
    КонецЦикла;

    НоваяТз[ВыборкаНомерСтроки.НомерСтроки-1].Вид= Список;
    КонецЦикла;
    --- Объединение сообщений, 1 июн 2015 ---
    Вот код, без запроса. Подскажите что тут не так (
  12. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Не уверен, что это правильно. Есть метод у табличной части НайтиСтроки. Но он не работает для номера строки. Так что подумайте может к номенклатуре привязать. Ваше дело. Если с этим методом, то вообще все просто.
    В цикле перебора вашего запроса
    Код:
    Отбор = Новый Структура();
            Отбор.Вставить("Номенклатура", ВыборкаЗапроса.Номенклатура);
            Строки = ВашаТЧ.НайтиСтроки(Отбор);
            Если Строки.Количество() > 0 Тогда
       // делайте что хотите с этими строками
            КонецЕсли;
  13. TopicStarter Overlay
    NewLife89
    Offline

    NewLife89 Опытный в 1С

    Регистрация:
    4 дек 2014
    Сообщения:
    63
    Симпатии:
    1
    Баллы:
    29
    Что то я запутался.
    Как в цикле прописать это заполнение, чтобы в итоге строка 1 а в колонке стало записей сколько нашлось.
Похожие темы
  1. Weman
    Ответов:
    8
    Просмотров:
    1.766
Загрузка...

Поделиться этой страницей