Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
19 Дек 2017, 01:34
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Отчет по отстаткам товара  (Прочитано 3376 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AmoZ

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 1
  • КПД: 11%
  • Регистрация: 2009-04-19
  • Сайт: 
Доброго времени суток!
1С 8.1 Бухгалтерия 1.6.15.6.
Была задача написать отчет, который выводит остаток по товарам... При это пользователь выбирает в форме цифру меньше которой будут выводится товары. Т.е. если ввела 5, то будут выведены товары, которых меньше или равно 5.
Функция КнопкаВыполнитьНажатие(Кнопка)

Форма = ПолучитьФорму("Форма");

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Остаток";

Макет = ПолучитьМакет("Макет");

ОбластьШапка   = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрока  = Макет.ПолучитьОбласть("Строка");
ОбластьСтрока1 = Макет.ПолучитьОбласть("Строка1");
   
ТабДокумент.Вывести(ОбластьШапка);

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Кол", Номер);
Запрос.Текст = "ВЫБРАТЬ
| ПартииТоваровНаСкладахНалоговыйУчетОстатки.Номенклатура,
| ПартииТоваровНаСкладахНалоговыйУчетОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ПартииТоваровНаСкладахНалоговыйУчет.Остатки КАК ПартииТоваровНаСкладахНалоговыйУчетОстатки
|ГДЕ
| ПартииТоваровНаСкладахНалоговыйУчетОстатки.КоличествоОстаток <= &Кол";
Выборка = Запрос.Выполнить();
Результат = Выборка.Выбрать();
Ном = 0;
Флаг_цвет = 1;

Пока Результат.Следующий() Цикл
Ном = Ном + 1;
Если Флаг_Цвет = 1 Тогда
ОбластьСтрока.Параметры.Номенклатура = Результат.Номенклатура;
ОбластьСтрока.Параметры.Ном = Ном;
ОбластьСтрока.Параметры.Остаток = Результат.КоличествоОстаток;
ТабДокумент.Вывести(ОбластьСтрока);
Флаг_Цвет = 0;
Иначе
Флаг_Цвет = 1;
ОбластьСтрока1.Параметры.Номенклатура = Результат.Номенклатура;
ОбластьСтрока1.Параметры.Ном = Ном;
ОбластьСтрока1.Параметры.Остаток = Результат.КоличествоОстаток;
ТабДокумент.Вывести(ОбластьСтрока1);
КонецЕсли;

КонецЦикла;

ТабДокумент.Показать();

КонецФункции
Проблема в том, что если вводить 0, то товары, которых нет вообще на складе не выводится, т.к. в регистре "ПартииТоваровНаСкладахНалоговыйУчетОстатки" их нет.

Подскажите, плз, как исправить?


Оффлайн rassini

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2009-11-09
  • Сайт: 
Прошу прощения если что не так, новичок я :)

При выводе товаров которых нет на складе, предлагаю попробовать объединять результаты запросов примерно как

ПРАВОЕ СОЕДИНЕНИЕ РезультатЗапросаЧтоЕстьвРегистре

ПО ЧегоНетвРегистре

----------------

Возможно с синтаксисом напутал, надеюсь идея понятна.

Оффлайн AmoZ

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 1
  • КПД: 11%
  • Регистрация: 2009-04-19
  • Сайт: 
Уже решил
Функция КнопкаВыполнитьНажатие(Кнопка)
Форма = ПолучитьФорму("Форма");

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Остаток";

Макет = ПолучитьМакет("Макет");

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

ОбластьШапка   = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрока  = Макет.ПолучитьОбласть("Строка");
ОбластьСтрока1 = Макет.ПолучитьОбласть("Строка1");

//ОбластьЗаголовок.Параметры.Получить(ДанныеДляПечати);

ТабДокумент.Вывести(ОбластьЗаголовок);
ТабДокумент.ПовторятьПриПечатиСтроки = ТабДокумент.Область("Заголовок");

ТабДокумент.Вывести(ОбластьШапка);


Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Кол", Номер);
Запрос.Текст = "ВЫБРАТЬ
               | НоменклатураСпр.Ссылка КАК Номенклатура,
               | НоменклатураСпр.Представление,
               | ЕСТЬNULL(ПартииТоваровНаСкладахНалоговыйУчетОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток
               |ИЗ
               | Справочник.Номенклатура КАК НоменклатураСпр
               | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладахНалоговыйУчет.Остатки КАК ПартииТоваровНаСкладахНалоговыйУчетОстатки
               | ПО (ПартииТоваровНаСкладахНалоговыйУчетОстатки.Номенклатура = НоменклатураСпр.Ссылка)
               |ГДЕ
               | ЕСТЬNULL(ПартииТоваровНаСкладахНалоговыйУчетОстатки.КоличествоОстаток, 0) <= &Кол
               | И НоменклатураСпр.ЭтоГруппа = ЛОЖЬ";
Выборка = Запрос.Выполнить();
Результат = Выборка.Выбрать();
Ном = 0;
Флаг_цвет = 1;

Пока Результат.Следующий() Цикл
        Ном = Ном + 1;
Если Флаг_Цвет = 1 Тогда
ОбластьСтрока.Параметры.Номенклатура = Результат.Номенклатура;
ОбластьСтрока1.Параметры.Ном = Ном;
ОбластьСтрока.Параметры.Остаток = Результат.КоличествоОстаток;
ТабДокумент.Вывести(ОбластьСтрока);
Флаг_Цвет = 0;
Иначе
Флаг_Цвет = 1;
ОбластьСтрока1.Параметры.Номенклатура = Результат.Номенклатура;
ОбластьСтрока1.Параметры.Ном = Ном;
ОбластьСтрока1.Параметры.Остаток = Результат.КоличествоОстаток;
ТабДокумент.Вывести(ОбластьСтрока1);
КонецЕсли;

КонецЦикла;

ТабДокумент.Показать();
КонецФункции

Оффлайн Belgafood

  • **
  • Сообщений: 98
  • РЕПУТАЦИЯ: 17
  • КПД: 17%
  • Регистрация: 2008-07-10
  • Сайт: 
  • Профессия: Ученик 1С
Не увидел тему ((
Подпись

Оффлайн AmoZ

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 1
  • КПД: 11%
  • Регистрация: 2009-04-19
  • Сайт: 
Belgafood
Не совсем Вас понял... Что Вы не уидели?


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
133 Сообщений
AIFrame
73 Сообщений
alex0402
52 Сообщений
ilyay ilyay
51 Сообщений
andron81_81
44 Сообщений
oleg-x
35 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 224
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal