Имя: Пароль:
1C
1C 7.7
v7: Запросом или иначе?
0 teploset
 
18.12.14
08:14
Помогите, пожалуйста, составить запрос, результатом которого будет набор данных для заполнения следующей таблицы:
Контрагент | Материал.Код | Материал.Наименование | Приход.Кол-во | Приход.Сумма | Расход.Кол-во | Расход.Сумма
за период с 01.01.2009 по 31.12.2013, где данные по приходу берутся из документов "Поступление материалов", а по расходу - из "Перемещение материалов" и "Отгрузка материалов на сторону".
Если невозможно запросом, то как?
1 aka AMIGO
 
18.12.14
08:18
1. Выборкой документов.
2. Выборкой из регистров
2 bodri
 
18.12.14
08:22
(1) <2. Выборкой из регистров>  это если Оперативный учет.
(0) Выборка по документам с загрузкой в таблицу значений
3 teploset
 
18.12.14
08:22
Забыл уточнить, у нас: 1С:Бухгалтерия 7.7, Типовая конфигурация, редакция 4.5
4 bodri
 
18.12.14
08:26
(3) Если все суммы по себестоимости без наценки, тогда можно через бух итоги по счетам
5 ASV
 
18.12.14
08:28
(4) а контрагент?  они наверно хотят из поступления
6 bodri
 
18.12.14
08:29
(5) но выборку можно делать по проводкам, где есть документ, а там и контрагент
7 teploset
 
18.12.14
08:30
(4) По счетам не надо, только по документам, так бухи просят.
Запросом совсем нереально такое сделать?
8 ASV
 
18.12.14
08:32
(7) контрагент откуда нужен?
9 aka AMIGO
 
18.12.14
08:33
(7) Да реально.. войди в "Генератор Запросов", да создай.. По-первости заготовку, а по результатам увидишь, чего не хватает
10 bodri
 
18.12.14
08:35
(9) +100500.
(7) Конструктор запросов тебе поможет
11 bodri
 
18.12.14
08:36
Кстати запросы в семерке терпеть не могу.
12 teploset
 
18.12.14
08:38
(8) не понятен вопрос... Если смотреть поступление материалов, то из ПриходныйОрдер.Поставщик - это?
13 bodri
 
18.12.14
08:38
Пример запроса
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с Дата1 по Дата2;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Контрагент = Документ.ПоступлениеТоваров.Контрагент;
    |ТМЦ = Документ.ПоступлениеТоваров.ТМЦ;
    |КоличествоПрих = Документ.ПоступлениеТоваров.Количество;
    |СуммаПрих = Документ.ПоступлениеТоваров.Сумма;
    |"//}}ЗАПРОС
14 ASV
 
18.12.14
08:42
(12) какая таблица нужна

Поставщик1 Помидоры 5 0
Поставщик2 Помидоры 4 0
Покупател0 Помидоры 0 2
Покупател1 Помидоры 0 4

или

Поставщик1 Помидоры 5 5
Поставщик2 Помидоры 4 1
15 teploset
 
18.12.14
08:43
(14) группировка по контрагенту, поставщик.
16 aka AMIGO
 
18.12.14
08:44
В одном Запросе и приход, и расход - сложновато :)
Я-б для начала создал 2 Запроса
1-й - Приход, с формированием ТЗ (Колонка Приход)
2-й - Расход, с поиском ТМЦ в ТЗ, и записью в Колонку Расход.

(14) судя по сабжу, вторая табличка
17 VladZ
 
18.12.14
08:49
(16) Можно и одним обойтись.
18 ASV
 
18.12.14
08:52
(16) как распределять партии в типовой Бухгалтерии,
они наверно эффективность поставщиков хотят видеть
19 VladZ
 
18.12.14
08:54
(0) Что должно быть в колонке "Контрагент" для документов вида "Перемещение материалов" и "Отгрузка материалов на сторону"?
20 aka AMIGO
 
18.12.14
08:55
(18) Вот! Насчет партий в БУхии я очень сомневаюсь..
21 teploset
 
18.12.14
08:55
(19) Наименование поставщика.
22 aka AMIGO
 
18.12.14
08:57
(21) Для дока "ОтгрузкаМатериаловНаСторону" - это типа возврата поставщику?
23 aka AMIGO
 
18.12.14
09:01
(22) + похоже, что так. В этом документе есть Реквизит "ДокументПоступления", и сф на возврат.
24 teploset
 
18.12.14
09:02
(19) Сорри, видимо не то написал... сейчас уточню у бухов.
25 ASV
 
18.12.14
09:04
(23) в этом доку 3 операции
Вид отпуска материалов:
Продажа
Передача в переработку
Возврат поставщику
26 aka AMIGO
 
18.12.14
09:07
(25) А, тогда ВидОпер надо в условие запихнуть..
ЗЫ. правда, не очень ясны (лично мне) желаемые результаты отчета..
27 ASV
 
18.12.14
09:11
по Н02.01.  можно попробовать. там договор в субконто есть
28 teploset
 
18.12.14
09:32
Переговорил с бухами, уточненная информация своими словами:
по приходу - выбрать поставщика, материал (код, наименование), кол-во и сумму из док-та "Поступление материалов";
по расходу - выбрать кол-во и сумму из док-тов "Перемещение материалов" и "Отгрузка материалов на сторону", связав с колонкой ПРИХОД по коду материала.
Группировать по контрагенту (поставщик).
Вроде это упрощает задачу, ребята, помогите, горит!
29 ASV
 
18.12.14
09:55
у одного материала бывает два поставщика? или 100% нет такого

если бывает как распределять расход между ними?
30 teploset
 
18.12.14
10:30
(29) Да, бывает.
Главбух сказала распределять расход между ними так, на примере: был приход за период времени 20шт материала, по 10шт от двух поставщиков. Расход составил 15шт. Значит с 1го поставщика списать 10шт, а со 2го - 5шт.
31 2S
 
18.12.14
10:35
Для бух давно есть объект бух итоги. И не ипитемозг
32 teploset
 
18.12.14
12:06
и всё, помощь кончилась :(
33 ASV
 
18.12.14
12:26
(32) ответ в (16) был
34 ASV
 
18.12.14
12:39
Расход.Сумма что показывает?

или просто Расход.Кол/Приход.Кол*Приход.Сумма
35 teploset
 
18.12.14
12:53
(34) да, так Расход.Кол/Приход.Кол*Приход.Сумма
36 teploset
 
18.12.14
13:16
(34) Формирую запрос для прихода так:
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Наименование = Документ.ПоступлениеМатериалов.Контрагент.Наименование;
    |Код = Документ.ПоступлениеМатериалов.Материал.Код;
    |Наименование1 = Документ.ПоступлениеМатериалов.Материал.Наименование;
    |Количество = Документ.ПоступлениеМатериалов.Количество;
    |Сумма = Документ.ПоступлениеМатериалов.Сумма;
    |Группировка Наименование;
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл
        // Заполнение полей Наименование
        Таб.ВывестиСекцию("Наименование");
    КонецЦикла;
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры

Но чо-то не так, видимо, делаю, т.к. в результате на одного контрагента только один материал, что исправить надо?

Наименование    Код    Наименование    Кол-во    Сумма
АВТОКРАНСЕРВИС ООО КПК    001690    СТРОПЫ СКП 1,4    6    3900
АвтоСтиль ООО    020393    ХОМУТ    2    210
Агат ООО    002936    ПЕСОК  м куб    45    10800
Аква Виталис ООО    011288    Вода минеральная питьевая 19л.    28    3920
Акобджанян А.Р. ИП    001851    ПЕСОК РЕЗКИЙ (м^3)    12    2040
АКСИОМА ООО    030548    Утеплитель (м3)    53.106    109561.07
37 ASV
 
18.12.14
13:24
|Контрагент = Документ.ПоступлениеМатериалов.Контрагент;
    |Наименование = Документ.ПоступлениеМатериалов.Контрагент.Наименование;
    |Код = Документ.ПоступлениеМатериалов.Материал.Код;
    |Материал = Документ.ПоступлениеМатериалов.Материал;
    |Наименование1 = Документ.ПоступлениеМатериалов.Материал.Наименование;
    |Количество = Документ.ПоступлениеМатериалов.Количество;
    |Сумма = Документ.ПоступлениеМатериалов.Сумма;
    |Группировка Контрагент;
    |Группировка Материал;
    |"//}}ЗАПРОС
38 Злопчинский
 
18.12.14
18:12
Сформируй простую плоскую таблицу без всяких группировок.
потом подсунь ее в "типовую" обработку
http://infostart.ru/public/14794/
39 GreyK
 
18.12.14
18:48
(0) Как бухие хотят учитывать перемещения между складами?
40 Злопчинский
 
18.12.14
20:30
(39) запросто.
например, для подтверждения затрат понесенных на оборудование и содержание шоурума - гораздо лучше если в учете в этом самом шоуруме будет числится товар (если он не списывается на рекламу/прочее).
41 GreyK
 
18.12.14
21:00
(40) Тогда надо ещё и по складам отбор делать. Такой отчет возможен по методу ФИФО, но ценник будет возле 20тр. Слишком много "хотелок".
42 Pit0n_08
 
18.12.14
21:02
(28) Если речь идет о типовой бухии, то "чудеса" в расходной части таблицы неизбежны - толку от такого отчета много не будет, а вот шухера...
Представь, что есть две поставки одного материала от двух поставщиков: от первого 10 шт по 10 руб. и второго 10 шт по 20 руб. Списываем 7 шт и получаем приход 10 по 10 руб. (это тянется из документов прихода от первого поставщика), а расход, если расчитывать от проводок документов, получится по среднему (в типовой парт. учета нет) 7 шт. по 15 руб. Ай-ай бизнес по-русски...
Или ещё заковыка. Как ты определишь приход, по которому ещё есть остатки? За какой период нужно делать выборку документов прихода?
ЗЫ. Гнилое это дело - гемора не оберешся.
43 Pit0n_08
 
18.12.14
21:10
+(42) Без партионного учета эта задачка не имеет коректного решения...
44 GreyK
 
18.12.14
21:16
(43) Высчитать когда поступил материал можно, для этого не нужны партии. Я делал такое для метода ФИФО, можно и по другим методам конечно, но я не пробовал.
45 Pit0n_08
 
18.12.14
21:26
(44) "Высчитать когда поступал материал можно..." - это да.
А как определить приход, по которому ещё есть остатки?
Да и выбирать документы от самого раннего не айс.
46 GreyK
 
18.12.14
21:35
(45) От остатков.
47 Злопчинский
 
18.12.14
21:36
(45) читаешь остатки на сейчас.
начинаешь из задомнаперед "распределять" по приходам.
как остатки кончились - набранный список доков и есть документы прихода текущих остатков по ФИФО
48 Злопчинский
 
18.12.14
21:39
причем собирать  надо по проводкам (предпочтительнее для адекватности данных), при этом такие хитрые вещи как сторно расходов и приходов - не пропустить...
49 GreyK
 
18.12.14
21:41
(47) Мастерство не пропить :)
50 Pit0n_08
 
18.12.14
22:08
(48)И ещё как-то откинуть входящие остатки и ручные операции.
Работать будет при выполнении кучи если...
И не факт, что итог по колонке будет совпадать с обороткой.
51 GreyK
 
18.12.14
22:14
(50) "ручные операции" нельзя убирать.
Причём здесь обормотка!? Какая колонка обормотки в бухии отвечает за партии?
52 Злопчинский
 
19.12.14
00:21
(49) у блин это целые эпопеи
Когда выясняется что надо взаиморасчеты с клиентами в разрезе наших банковских счетов посчитать
53 Злопчинский
 
19.12.14
00:25
(50) правильно сделанный отчет бьется с другими отчетами в базе например с обормоткой
Или же детализирует до разрезов тире аналитик которые штатно не предусмотрены в базе
И если остатки по обормотке равно сто штук
А по самописному отчету с раскладкой по партиям получается стодесять штук то тут как говорится
    Недоделанные отчеты это не беда
    Главное доделывайте детей
    А то они вырастают и приносят недоделанные отчеты
    И никак не разорвать этот замкнутый круг