Консультация № 172076
11.09.2009, 09:42
0.00 руб.
14.09.2009, 15:48
0 7 1
Уважаемые эксперты. Помогите решить проблему:
Имеется 1С "Торговля и склад" 7.70.948. В отчете "Ведомость по остаткам ТМЦ" нужно еще в детализацию отчета добавить поле "Контрагент". И чтобы отчет формировался с учетом контрагентов. Заранее благодарен.

Обсуждение

Неизвестный
11.09.2009, 11:07
общий
это ответ
Здравствуйте, vasilev-vasy85!
1. Думаю, что это почти невозможно.
Регистр, по которому формируется данный отчет, не имеет такого измерения.
В любом случае этот требует существенного изменения отчета.
Кроме того, задача поставлена недостаточно точно: что в данном случае должно быть в поле "Контрагент"?
Для примера: Вы провели переучет, на основании убрали пересорт документами "Оприходование" и "Списание", остатки изменились, изменение этих остатков показывает отчет, при чем тут контрагент? какой он должен быть?

2. Обратите внимание на отчет "Ведомость по партиям ТМЦ". Тут есть документ партии, и, по крайней мере у части партеобразующих документов, есть поле Контрагент, в этом отчете проще добавить это поле, если, конечно, Вы хотите в этом поле видеть поставщика.

3. В любом случае нужно определиться для каких целей Вам это нужно, что конкретно Вы хотите увидеть в поле Контрагент.
Неизвестный
11.09.2009, 13:00
общий
vasilev-vasy85:
Яна права - это будет возможно, но сложно в плане отследить партию. Рациональнее такой отчет сделать на основе данных из регистра ПартииТоваров, в котором есть сведения о поставщике.
Ведь если сделано перемещение, в нем нет контрагента, но оно двигает партии, у которых можно найти поставщика по косвенной ссылке.

В регистре должен быть документ-регистратор, откуда будет браться партия, но если движение сделает докуент, не имеющий ссылки на контрагента, теряется смысл отчета.
В 7.7 если в регистре явно не прописан регистратор типа "документ", можно использовать неявный метод "ТекущийДокумент". Тем более, можно в запросе указать косвенную ссылку:
Код:
|Период с ВыбНачПериода по ВыбКонПериода;
|Товар = Регистр.ОстаткиТоваров.Товар;
|Склад = Регистр.ОстаткиТоваров.Склад;
|Партия = Регистр.ОстаткиТоваров.Партия;
|Количество = Регистр.ОстаткиТоваров.Количество;
|Сумма = Регистр.ОстаткиТоваров.Сумма;
|Контрагент = Регистр.ОстаткиТоваров.ТекущийДокумент.ПриходнаяНакладная.Контрагент, Регистр.ОстаткиТоваров.ТекущийДокумент.ВозвратнаяНакладная.Контрагент;
|Группировка Контрагент;
|Группировка Товар;

Конечно, нужно будет переделать в модуле и обход запроса, чтобы привести отчет к желаемому виду.

Но повторюсь - это возможный, но не лучший метод. Воспользуйтесь отчетом по партиям товаров или любым другим отчетом по этому регистру.
Неизвестный
11.09.2009, 13:14
общий
vasilev-vasy85:
Хотя... Что Вы подразумеваете под "в детализацию отчета добавить поле "Контрагент"? Т.е. есть такой отчет:

Гвозди - нч. ост. 300, приход 400, расход 200, кон.ост 500
- Приходная накладная ПН-001 150
- Расходная накладная РН-001 150
- Расходная накладная РН-002 50
- Приходная накладная ПН-002 250
, а Вам надо, чтобы он имел вид
Гвозди - нч. ост. 300, приход 400, расход 200, кон.ост 500
- Приходная накладная ПН-001 (ООО "Метиз") 150
- Расходная накладная РН-001 (маг. "Стройтовары") 150
- Расходная накладная РН-002 (КП "Городской парк отдыха") 50
- Приходная накладная ПН-002 (ООО "Метиз") 250


Верно?
Неизвестный
13.09.2009, 10:24
общий
Хотелось получить отчет по товару:

на начало приход расход на конец
Гвозди
ООО "метиз" 10 20 15 15
маг. Стройматериалы 0 45 10 30
Дюбеля
ООО "Метиз" 30 0 15 15
Неизвестный
13.09.2009, 10:36
общий
Тогда Вам нужно сделать запрос по партиям с группировками в такой последовательности: Товар, Контрагент
Неизвестный
17.09.2009, 09:03
общий
vasilev-vasy85:
Я думаю, можно сделать проще (если конечно результат Вас устроит): в этом отчете есть группировка по документу, в строке вывода м. добавить "Запрос.Документ.Контрагент" с условием "Запрос.Документ.Вид() <> "ПеремещениеТМЦ""(и др. документов не имеющих реквизита "Контрагент"), также м. добавить вывод промежуточного итога по Контрагенту.
Извините, код сейчас писать абсолютно некогда. Но там по коду отчета можно сориентироваться.
Неизвестный
22.09.2009, 13:36
общий
vasilev-vasy85:
Для отчета такова типа нужно использовать регистры накоплений. Регистр.ПартииТоваров есть все что вам нужно ненада делать таких больших строк строк "|Контрагент = Регистр.ОстаткиТоваров.ТекущийДокумент.ПриходнаяНакладная.Контрагент, Регистр.ОстаткиТоваров.ТекущийДокумент.ВозвратнаяНакладная.Контрагент;" что значительно упрощает роботу запроса и время ево формировки. Такой приблизительно вид будет у Вашего запроса

ТекстЗапроса="
|ПЕРИОД С Дата1 По Дата2;
|Товар=Регистр.ПартииТоваров.Товар;
|Фирма=Регистр.ПартииТоваров.Фирма;
|Статус=Регистр.ПартииТоваров.Статус;
|Контрагент=Регистр.ПартииТоваров.Контрагент;
|Поставщик=Регистр.ПартииТоваров.Поставщик;
|Клиент=Регистр.ПартииТоваров."+Клиент+";
|ПрихДокумент=Регистр.ПартииТоваров.ПрихДокумент;";

ТекстЗапроса=ТекстЗапроса+"
|Докум=Регистр.ПартииТоваров.ТекущийДокумент;
|ОстатокТовара=Регистр.ПартииТоваров.ОстатокТовара;
|Стоимость=Регистр.ПартииТоваров.Стоимость;
|НДС=Регистр.ПартииТоваров.НДС;
|ПродСтоимость=Регистр.ПартииТоваров.ПродСтоимость;
|КодОперации=Регистр.ПартииТоваров.КодОперации;
|Группировка Клиент Без групп;";
Форма ответа