7.7 Подчиненые справочники

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

  1. TopicStarter Overlay
    daylight
    Offline

    daylight

    Регистрация:
    29 июн 2011
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Я как то потерял суть разговора. Мне нужна таблица такой структуры как я выше "нарисовал" что бы можно было работать с данными в екселе. На каком листе она будет, мне всеравно. Или вы имели ввиду что бы каждый товар переносить на новый лист?
  2. TopicStarter Overlay
    daylight
    Offline

    daylight

    Регистрация:
    29 июн 2011
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Такие размолвки наверное моя вина. Слишком не ясно задаю вопросы.
    Смотрите ситуация такова.

    Технологам нужна таблица с данными в екселе(именно в екселе, капризы такие) что бы расчитывать количество затраченого сырья на разное количество продукции. Поэтому табличка нужна одна, я в ней формулы пропишу и пусть радуются.
  3. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Технологам вашим нужна что-то типа производственной ведомости.
    Проще делать по-другому: сначала сформируйте таблицу значений с данными, а потом ее выгружайте в Excel.
    С помощь 1 таблицы и 1 вспомогательного списка значений все должно получиться. Сейчас попробую код набросать.
  4. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Вот пример кода заполнения ТЗ:
    Код:
        Спр = СоздатьОбъект("Справочник.ТМЦ");
    СпрСостав = СоздатьОбъект("Справочник.Состав");
    
    ТЗ = СоздатьОбъект("ТаблицаЗначений");
    ТЗ.НоваяКолонка("ТМЦ", "Справочник.ТМЦ"); 
    Сп = СоздатьОбъект("СписокЗначений");
    
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() Цикл
    ТЗ.НоваяСтрока();
    ТЗ.ТМЦ = Спр.ТекущийЭлемент();
    СпрСостав.ИспользоватьВладельца(Спр.ТекущийЭлемент());
    СпрСостав.ВыбратьЭлементы();
    Пока СпрСостав.ПолучитьЭлемент() = 1 Цикл
    НомерКолонки = Сп.НайтиЗначение(СпрСостав.Наименование);
    Если НомерКолонки = 0 Тогда
    Сп.ДобавитьЗначение(СпрСостав.Наименование);
    НомерКолонки = Сп.РазмерСписка();
    ТЗ.НоваяКолонка("К_" + Строка(НомерКолонки), "Число", 18, 3)
    КонецЕсли;
    ТЗ.УстановитьЗначение(ТЗ.НомерСтроки, "К_" + Строка(НомерКолонки), СпрСостав.Кво);
    КонецЦикла;
    КонецЦикла;
    
    
    Пример получения данных из таблицы
    Код:
        // вывод заголовка
    Для Сч = 1 По Сп.РазмерСписка() Цикл
    НаименованиеСостава = Сп.ПолучитьЗначение(Сч);
    КонецЦикла;
    
    // вывод строк
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку() = 1 Цикл
    ТМЦ = ТЗ.ТМЦ;
    Для Сч = 1 По Сп.РазмерСписка() Цикл
    КоличествоСостава = ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, "К_" + Строка(Сч));
    КонецЦикла;
    КонецЦикла;
    
    
  5. TopicStarter Overlay
    daylight
    Offline

    daylight

    Регистрация:
    29 июн 2011
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    В Списках и Таблицах значений немного разобрался благодоря ресурсу mista.ru. Но так и не понял как вывести результаты обработки на печатную форму. Предполагаю что надо бы воспользоваться табличной частью обработки. Подтолкните плз, как бы это сделать грамотно?
  6. TopicStarter Overlay
    daylight
    Offline

    daylight

    Регистрация:
    29 июн 2011
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Я как то не пойму этот момент

    и аналогичный с выводом строк.
    Переменная "НаименованиеСостава" это масив что ли? в противном случае в ней же останется только последнее значение.

    И как в конце концов вывести списки значения на печать? Или просто в табличный документ что бы сохранить в *.xls формате?
  7. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Покажу на примере вывода данных в печатную форму такого вида:
    Посмотреть вложение 8180

    Код:
    // вывод заголовка
    Таб.ВывестиСекцию("Шапка|ТМЦ");
    Для Сч = 1 По Сп.РазмерСписка() Цикл
    НаименованиеСостава = Сп.ПолучитьЗначение(Сч);
    Таб.ПрисоединитьСекцию("Шапка|Состав");
    КонецЦикла;
    
    // вывод строк
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку() = 1 Цикл
    ТМЦ = ТЗ.ТМЦ;
    Таб.ВывестиСекцию("Строка|ТМЦ");
    Для Сч = 1 По Сп.РазмерСписка() Цикл
    КоличествоСостава = ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, "К_" + Строка(Сч));
    Таб.ПрисоединитьСекцию("Строка|Состав");
    КонецЦикла;
    КонецЦикла;
    
    

    Вложения:

    • 0041.PNG
      0041.PNG
      Размер файла:
      7,6 КБ
      Просмотров:
      12
  8. TopicStarter Overlay
    daylight
    Offline

    daylight

    Регистрация:
    29 июн 2011
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    всем спасибо за помощь.
    Итак, подводя итоги, получилась обработка которая выгружает в табличную часть документа данные из справочника ТМЦ и подчиненного ему справочника СоставПродукции, а там уже и в *.xls без проблем сохранить.

    Обработка увы не универсальна, но код очень прост, поэтому переделать ее под себя не сложно.

    Большое спасибо: Requin и Бухгалтерский угодник, вклад которых нельзя переоценить.

    Выкладываю для всеобщего обозрения.

    Тему можно закрыть.

    Вложения:

    • mytabs.ert
      Размер файла:
      29 КБ
      Просмотров:
      30

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