7.7 Общая таблица значений

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем NemeL, 13 мар 2012.

  1. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    подскажите как сделать общюю таблицу для нескольких документов имеющих табличную часть. пробую таким методом но выводится только последняя таблица в списке документов
    Код:
    Процедура общаяТаблица()
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
    ПриактивизацииСтроки();//функция отображающая тч документа
    Таб_док.Выгрузить(Таб_общ); //Таб_док- табличная часть документа
    КонецЦикла;
    конецПроцедуры
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Код:
    Процедура общаяТаблица()
    Общая=СоздатьОбъект("ТаблицаЗначений");
    //создадим структуру без заморочек с колонками
    ПолучитьСтрокуПоНомеру(1);
    Таб_Док.Выгрузить(Общая); //при условии что Таб_Док это реквизит документа а не формы
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
    Если НомерСтроки=1 Тогда
    Продолжить; //уже выгрузили
    КонецЕсли;
    // ПриактивизацииСтроки(); вот зачем? Таб_Док это что - реквизит документа или формы?
    //если реквилит документа - не нужно вообще.
    Таб_док.Выгрузить(Таб_общ); //Таб_док- табличная часть документа
    Таб_Общ.ВыбратьСтроки();
    Пока ТабОбщ.ПолучитьСтроку()=1 Цикл
    Общая.НоваяСтрока();
    //тут по колонкам побежали
    КонецЦикла;
    КонецЦикла;
    конецПроцедуры
    
    если Таб_Док это реквизит формы - приведите текст процедуры ПриактивизацииСтроки() или структуру документа озвучте
  3. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    в табличной часть реквизит РЛ(расходный лист) имеет ссылку на документ, а таб_док это тз в котором отображается табличная часть РЛ
    Код:
    Функция ОтобразитьРЛ()
    Если ТекСтрока=НомерСтроки Тогда
    Возврат "";
    КонецЕсли;
    ТекСтрока=НомерСтроки;
    Если ПустоеЗначение(РЛ)=1 Тогда  
    Таб_РЛ.УдалитьСтроки();
    Возврат "";
    КонецЕсли;
    РЛ.ВыгрузитьТабличнуюЧасть(Таб_Док);
    ....
    конецФункции
    функция ПриАктивацииСтроки()
    Если _НомерСтроки<>НомерСтроки Тогда
    _НомерСтроки=Номерстроки;
    ОтобразитьРЛ();
    КонецЕсли;
    Возврат "";
    КонецФункции
    
    вот функция отображения табличной части РЛ и активизиция строки, мне нужно что в общей таблице были все строки ТАб_док по каждому документу(т.е если документа РЛ у меня допустил 2 и они имеют по две строки в тч то чтоб в общей были 4 строки)
  4. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    не совсем понял о чем речь, но догадываюсь что при ВыгрузитьТабличнуюЧасть() все предыдущие значения и структура таблицы стирается, поэтому делаем что-то типа:
    Код:
    Таб2 = СоздатьОбъект("ТаблицаЗначений");
    Таб1.Выгрузить(Таб2);
    Таб2.УдалитьСтроки(); // т.е. повторили струтктуру таблицы Таб1
    //тут какие-то ваши действия
    //
    //заполняем т.н. общую таблицу Таб2
    Для ш = 1 По Таб1.КоличествоСтрок() Цикл
    Таб2.NewLine(); // Добавляем строку
    Для о = 1 По Таб1.КоличествоКолонок() Цикл
    Таб2.УстановитьЗначение(Таб2.НомерСтроки,о,Таб1.ПолучитьЗначение(Таб1.НомерСтроки,о));
    КонецЦикла;
    КонецЦикла;
    
    а, #2 Бухгалтерский угодник, уже об этом сказал
  5. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    (4) может вот так понятней будет
    http://s019.radikal.ru/i633/1203/11/8c31bf986a40.jpg
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Как и предполагал... Реквизит формы.... Покажите код ПриактивизацииСтроки()
  7. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Код:
    функция ПриАктивацииСтроки()
    Если _НомерСтроки<>НомерСтроки Тогда
    _НомерСтроки=Номерстроки;
    ОтобразитьРЛ();
    КонецЕсли;
    Возврат "";
    КонецФункции
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    ну что мне из вас все клещами тянуть или вы прикалываетесь???

    Ну как можно понять структуру из вышеприведенного кода?

    Давайте ОтобразитьРЛ()
  9. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    да я все написал в (3)
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Извините. Не заметил

    Тогда замените в моем примере

    Таб_док.Выгрузить(Таб_общ)

    На

    РЛ.ВыгрузитьТабличнуюЧасть(Таб_общ)
  11. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    заменил все, выводится только первый РЛ в списке

    Код:
    Процедура Вывод()
    Общая=СоздатьОбъект("ТаблицаЗначений");
    ПолучитьСтрокуПоНомеру(1);
    Таб_РЛ.Выгрузить(Общая);
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
    Если НомерСтроки=1 тогда
    Продолжить;
    Конецесли;
    РЛ.ВыгрузитьТабличнуюЧасть(Таб);
    Таб.ВыбратьСтроки();
    Пока таб.ПолучитьСтроку()=1 Цикл
    Общая.НоваяСтрока();
    КонецЦИкла;
    КонецЦикла;
    конецПроцедуры
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Код:
    Пока таб.ПолучитьСтроку()=1 Цикл
    Общая.НоваяСтрока();
    // а где присвоения значений?
    КонецЦИкла;
    почитали бы вы литературу для начала........

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