Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Оборотная ведомость по тмц
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
wmatik
1С Предприятие 7.7(сетевая версия) - 7.70.025
Конфигурация: Производство-Услуги-Бухгалтерия для Украины(7.70.010)
Существует отчет "Оборотная ведомость по тмц",который выводит наименование тмц, нач.остаток,приход,расход,кон.остаток в виде количества и суммы, помесячно.
Надо чтобы отчет выдавал только приход тмц,причем по поставщикам,которые эти тмц поставили, и не по одному поставщику, а по всем. Если надо, могу выложить код модуля
Заранее благодарна
Vofka
Что конкретно для этого делаете вы, что конкретно не получается? Если нужно за вас написать - милости просим в необходимо зарегистрироваться для просмотра ссылки
wmatik
Цитата(Vofka @ 23.03.11, 14:45) необходимо зарегистрироваться для просмотра ссылки
Что конкретно для этого делаете вы, что конкретно не получается? Если нужно за вас написать - милости просим в необходимо зарегистрироваться для просмотра ссылки


Не знаю как подвязать документы(приходная накладная запасы, и т.д.),в которых указывается какой поставщик поставил тот или иной товар, не знаю как вывести данные в таблицу из него

а в столе заказов проблему решают платно или бесплатно?
logist
Цитата(wmatik @ 23.03.11, 14:14) необходимо зарегистрироваться для просмотра ссылки
а в столе заказов проблему решают платно или бесплатно?

Разумеется платно. Если хотите бесплатно, учитесь самостоятельно, мы лишь можем подсказать ответы на конкретные вопросы и указать на ошибки.
wmatik
Подскажите, какой функцией выводить контрагентов из документа, или может запросом, и куда вообще хотя бы втулить в код. Я создала Субконто3 с типом значений документ приходная накладная(где хранятся данные о том какой поставщик поставил тот или иной товар) и пробовала вставлять в код с помощью ИспользоватьСубконто с сылкой на этот док, но выдавало вообще что-то непонятное...
Вот такая процедура описывает мой отчет:
Процедура Сформировать()
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    Ит = СоздатьОбъект("БухгалтерскиеИтоги");
    Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения,ВыбСубконто1, 1,);  
    Если Группа = 1 Тогда
        Ит.ИспользоватьСубконто(ВидыСубконто.ТМЦ,ВыбСубконто2, 1,1);
    Иначе
        Ит.ИспользоватьСубконто(ВидыСубконто.ТМЦ,ВыбСубконто2, 1,);
    КонецЕсли;
    Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, ВыбСчет,,, 1,"Месяц", "СК");
    Таб.ВывестиСекцию("Заголовок");
    
    ВІ_Колонки(Таб, "Шапка");
    
    Ном = 0;
    Ит.ВыбратьСубконто(ВидыСубконто.МестаХранения);
    
    Пока Ит.ПолучитьСубконто(ВидыСубконто.МестаХранения) = 1 Цикл
        ВІ_Колонки(Таб, "Субконто1");
        Ит.ВыбратьСубконто(ВидыСубконто.ТМЦ,,,,,"ИнНомер",);
        Пока Ит.ПолучитьСубконто(ВидыСубконто.ТМЦ) = 1 Цикл    
            Если Ит.Субконто(ВидыСубконто.ТМЦ).ЭтоГруппа() = 1 Тогда
                ВІ_Колонки(Таб, "Группа");
            Иначе
                Ном = Ном+1;Дм = "";
                Спр = СоздатьОбъект("Справочник.ТМЦ");
                Спр.НайтиЭлемент(Ит.Субконто(ВидыСубконто.ТМЦ));
                Если Спр.Выбран() = 1 Тогда
                    ЕдИзм = Спр.БазоваяЕдиница;
                    ИнНомер =Спр.Наработка;
                    Если Спр.ДрагМеталл = 1 Тогда
                        ДМ = "д/м";
                    КонецЕсли;
                КонецЕсли;
                
                ВІ_Колонки(Таб, "Субконто2");
                
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
    
    ВІ_Колонки(Таб, "Подвал");

    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать","");
КонецПроцедуры
igmig65
Цитата
Надо чтобы отчет выдавал только приход тмц,причем по поставщикам,которые эти тмц поставили, и не по одному поставщику, а по всем.

Причем тут оборотка?? Это отчет по приходу. Заходите в конфигуратор и юзайте конструктор запросов. Приходная накладная вам в руки. Потом можете подкорректировать диалог, макет и код. Там вообще широкий диапазон для эксперементов, и главное начнете учиться пользоваться запросами.
wmatik
спасибо за совет, буду пробовать)
wmatik
И снова здрасте)
В общем сделала я отчет по приходу. Выглядит все это вот так:

Подскажите, можно ли (если можно то как) сделать отбор по тмц, чтобы одинаковые тмц стояли (шли) попорядку?
Очень надо
Pepe
Надо знать как вы делали выборку. Если запросом - можно использовать группировку, если таблица значений - сортировку.
wmatik
запросом работала.Из документа Приходная накладная вытягивала эти данные. Да я тоже подумала что можно группировку, только вот по чем группировать?
Vofka
Цитата
запросом работала.Из документа Приходная накладная вытягивала эти данные. Да я тоже подумала что можно группировку, только вот по чем группировать?

Ну мы же не телепаты. Код запроса в студию.
wmatik
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса;

    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать1)
    |Период с Дата1 по Дата2;
    |Док = Документ.ПриходнаяНакладнаяЗапасы.ТекущийДокумент, Документ.ВозвратнаяНакладная.ТекущийДокумент;
    |Клт = Документ.ПриходнаяНакладнаяЗапасы.Контрагент, Документ.ВозвратнаяНакладная.Контрагент;
    |Тов = Документ.ПриходнаяНакладнаяЗапасы.ТМЦ, Документ.ВозвратнаяНакладная.ТМЦ;
    |Кво = Документ.ПриходнаяНакладнаяЗапасы.Кво,Документ.ВозвратнаяНакладная.Кво;
    |Ц = Документ.ПриходнаяНакладнаяЗапасы.ЦенаБезНДС,Документ.ВозвратнаяНакладная.ЦенаБе
зНДС;
    |НДС = Документ.ПриходнаяНакладнаяЗапасы.НДС,Документ.ВозвратнаяНакладная.НДС;
    |Сум = Документ.ПриходнаяНакладнаяЗапасы.СуммаСНДС,Документ.ВозвратнаяНакладная.СуммаСН
ДС;
    |Функция КвоСумма = Сумма(Кво);
    |Функция НДССумма = Сумма(НДС);
    |Функция СумСумма = Сумма(Сум);
    |Условие(Клт в ВыбКонтрагент);
    |Условие(Тов в ВыбТМЦ);
    |"//}}ЗАПРОС
;
    
    Если ВыбКонтрагент.Выбран()=1 Тогда
        Заг1 = ВыбКонтрагент.Наименование;
    Иначе
        Заг1 = "По всем контрагентам";
    КонецЕсли;
    
    Если флгСклад = 1 Тогда
        ТекстЗапроса = текстЗапроса+"
        |Группировка Клт упорядочить по Клт.Наименование без групп;
        |Группировка Тов упорядочить по Тов.Наименование без групп;";
    Иначе    
        ТекстЗапроса = текстЗапроса+"
        |Группировка Тов упорядочить по Тов.Наименование без групп;";
    КонецЕсли;  

    Если выбТМЦ.Выбран()=1 Тогда
        Заг2 = выбТМЦ.Наименование;
    Иначе
        Заг2 = "По всем ТМЦ";
    КонецЕсли;
        ТекстЗапроса = текстЗапроса+"
        |Группировка Ц;";

    Если фРН=1 Тогда
        ТекстЗапроса = текстЗапроса+"
        |Группировка Док;";
    КонецЕсли;
    
    // Подготовка к заполнению выходных форм данными запроса

    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

КонецПроцедуры
Vofka
Вы скорей всего попадаетет в этот участок кода:

    |Группировка Клт упорядочить по Клт.Наименование без групп;
        |Группировка Тов упорядочить по Тов.Наименование без групп;";


Т.е. в этом случае у вас сначала идет группировка и порядок по клиенту, а внутри клиента по товару. Можно сделать порядок по товарам, но тогда будут товары, а внутри них клиенты. Для этого поменяйте местами эти строки.
wmatik
Я только начала познавать 1С, не судите строго, подскажите, в коде который идет сразу за запросом что-то ж тоже надо изменить?
таб = СоздатьОбъект("Таблица");
    таб.ИсходнаяТаблица("Таблица");
    
    таб.ВывестиСекцию("Шапка");
    
    НомПП =0;
    Если флгСклад = 1 Тогда
        Пока Запрос.Группировка(1) = 1 Цикл
            таб.ВывестиСекцию("Контрагент");
                Пока Запрос.Группировка(2) = 1 Цикл
                    Пока Запрос.Группировка(3) = 1 Цикл
                        ТМЦ = Запрос.Тов;
                        НомПП =НомПП + 1;
                        таб.ВывестиСекцию("Строка");
                        Если (фРН = 1) Тогда
                            Пока Запрос.Группировка(4) = 1 Цикл
                                Док = Запрос.Док;
                                таб.ВывестиСекцию("РНСтрока");
                            КонецЦикла;
                        КонецЕсли;
                    КонецЦикла;                    
            КонецЦикла;    
            таб.ВывестиСекцию("ИтогКонтрагент");
        КонецЦикла;
    Иначе
        Пока Запрос.Группировка(1) = 1 Цикл
            Пока Запрос.Группировка(2) = 1 Цикл
                ТМЦ = Запрос.Тов;
                НомПП =НомПП + 1;
                таб.ВывестиСекцию("Строка");
                Если (фРН = 1) Тогда
                    Пока Запрос.Группировка(3) = 1 Цикл
                        Док = Запрос.Док;
                        таб.ВывестиСекцию("РНСтрока");
                    КонецЦикла;
                КонецЕсли;
            КонецЦикла;              
        КонецЦикла;    
    КонецЕсли;
Vofka
Вы попробовали сделать то, что я написал?
wmatik
Цитата(Vofka @ 08.04.11, 15:33) необходимо зарегистрироваться для просмотра ссылки
Вы попробовали сделать то, что я написал?

Да, поменяла местами, выдает только тмц, там где должны быть поставщики пустые ячейки
wmatik
что все? ничего нельзя сделать?(
Vofka
Цитата
ничего нельзя сделать?(

Можно. Но нужно ковырять отчет.
wmatik
а это в стол заказов я так понимаю?)
Vofka
Цитата
а это в стол заказов я так понимаю?)

Если вам нужно сделать отчет - то да. Вы привели только текст отчета. Т.е. Для того, чтобы с ним разобраться нужно анализировать. А без конфигурации и самого отчета - это ещё тяжелее. Поэтому, лично я, за спасибо этим в ближайшее время заниматься не буду. Может у кого-то есть время и заняться нечем - он поможет. Поэтому варианта 2:
1. Задавать более конкретные вопросы;
2. Стол заказов.
Batchir
Так же всё завит какую цель больше приследуете:
1. Хотите познавать внутренности 1С.
2. Хотите видеть отчет "по своему" для работы с ним.

В первом случае стол заказов Вам не нужен, во втором можете воспользоваться.
wmatik
Если кому-то интересно, или может кому пригодится, рассказываю что сделала. Поменяла менстами строки
        |Группировка Клт упорядочить по Клт.Наименование без групп;
        |Группировка Тов упорядочить по Тов.Наименование без групп;";

и заменила
Пока Запрос.Группировка(3) = 1 Цикл
                        Док = Запрос.Док;

на вот это
Пока Запрос.Группировка(3) = 1 Цикл
                        Клт = Запрос.Клт;

Все работает)
Всем спасибо, кто натолкнул на мысль
Vofka
wmatik, ну вот видите, можно ведь пошевелить мозгами и сделать самому, а не тероризировать форум требованиями сделать за вас.

ЗЫ. относится к очень многим пользователям, так что не воспринимайте сугубо на свой счёт.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.