7.7 Остатки показывают весь склад.

Тема в разделе "Типовые решения "1С:Предприятие 7.7"", создана пользователем Олег Игоревич, 19 июн 2017.

  1. TopicStarter Overlay
    Олег Игоревич
    Offline

    Олег Игоревич

    Регистрация:
    19 июн 2017
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте. Совсем зеленый в 1С пока, досталась по наследству база, при просмотре остатков с выбором конкретной группы показывает весь склад, не могу найти решение, помогите советом.

    Код:
    //**************************************
    Процедура ОстатокНаСкладе()
    Тов=СоздатьОбъект("Справочник.Товар");
    ПечСумУч = 0;
    ПечСумУч1 = 0;
    ПечСумУч2 = 0;
    ВсегоСумУч = 0;
    ном=0;
    глЧислоСтрок=0;


    Если Товар.Уровень()=1 Тогда
    Заг="По всему Товару.";
    Иначе
    Тов.ИспользоватьРодителя(Товар.Родитель);
    Заг = "По группе Товара: ";
    Заг=Заг+Товар.Родитель.Наименование;
    КонецЕсли;


    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("ОстатокНаСкладе");
    Таб.ВывестиСекцию("Отчет|Общ");
    Тов.ВыбратьЭлементы();
    Пока Тов.ПолучитьЭлемент() > 0 Цикл
    Если Тов.ЭтоГруппа()=1 тогда
    //Таб.ВывестиСекцию("Группа");
    Иначе
    Если Склад.Выбран() = 0 тогда Ост = Регистр.ОстТовНаСкл.СводныйОстаток(Тов.ТекущийЭлемент(),,"Количество");
    Иначе Ост = Регистр.ОстТовНаСкл.СводныйОстаток(Тов.ТекущийЭлемент(),Склад,"Количество");
    КонецЕсли;
    Если Ост <> 0 Тогда
    Если Склад.Выбран() = 0 тогда ПечСумУч = Формат(Регистр.ОстТовНаСкл.СводныйОстаток(Тов.ТекущийЭлемент(),,"СуммаПрих"),"Ч013.3.'");
    Иначе ПечСумУч = Формат(Регистр.ОстТовНаСкл.СводныйОстаток(Тов.ТекущийЭлемент(),Склад,"СуммаПрих"),"Ч013.3.'");
    КонецЕсли;
    ПечСумУч1 = Формат(Ост*Тов.ЦенаЗакупочная,"Ч013.3.'");
    ПечОст = Формат(Ост,"Ч013.3.'");
    Фас = Формат(Тов.Фасовка,"Ч013.2.'");
    Если (Регистр.ОстТовНаСкл.СводныйОстаток(Тов.ТекущийЭлемент(),Склад,"СуммаПрих") - Ост*Тов.ЦенаЗакупочная > 50) или (Ост*Тов.ЦенаЗакупочная - Регистр.ОстТовНаСкл.СводныйОстаток(Тов.ТекущийЭлемент(),Склад,"СуммаПрих") > 50) или (Контроль = 0) Тогда
    Ном=Ном+1;
    Если Контроль = 1 Тогда
    Таб.ВывестиСекцию("Товар");
    Иначе
    Таб.ВывестиСекцию("Товар|Общ");
    КонецЕсли;
    КонецЕсли;
    Если Склад.Выбран() = 0 тогда ВсегоСумУч = ВсегоСумУч + Регистр.ОстТовНаСкл.СводныйОстаток(Тов.ТекущийЭлемент(),,"СуммаПрих");
    Иначе ВсегоСумУч = ВсегоСумУч + Регистр.ОстТовНаСкл.СводныйОстаток(Тов.ТекущийЭлемент(),Склад,"СуммаПрих");
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    Таб.ВывестиСекцию("Дно");
    Таб.Показать("Остатки Товара на складе","");
    КонецПроцедуры
    //**************************************
    Процедура КонтрольНАЦЕНКИ()
    Тов=СоздатьОбъект("Справочник.Товар");

    Если Товар.Уровень()=1 Тогда
    Заг="По всему Товару.";
    Иначе
    Тов.ВключатьПодчиненные(1);
    Тов.ИспользоватьРодителя(Товар.Родитель);
    Заг = "По группе Товара: ";
    Заг=Заг+Товар.Родитель.Наименование;
    КонецЕсли;

    глЧислоСтрок=0;
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Общий");
    Таб.ВывестиСекцию("Отчет");
    ном=0;
    Тов.ВыбратьЭлементы();
    Пока Тов.ПолучитьЭлемент()>0 Цикл
    Если (Тов.ЭтоГруппа() = 1) и (Тов.ТекущийЭлемент().ПометкаУдаления() = 0) тогда
    Таб.ВывестиСекцию("Группа");
    ИначеЕсли (Тов.ТекущийЭлемент().ПометкаУдаления() = 0) Тогда
    Если Тов.ЦенаЗакупочная = 0 Тогда Тов.ЦенаЗакупочная = 1; КонецЕсли;
    Ост = Регистр.ОстТовНаСкл.СводныйОстаток(Тов.ТекущийЭлемент(),,"Количество");
    ЦенаОПТ = (Тов.ЦенаПродажная/Тов.ЦенаЗакупочная - 1)*100;
    Если (Состат = 1) Тогда
    Если (Ост <> 0) Тогда
    Если (ЦенаОПТ < 15)Тогда
    Ном=Ном+1;
    ЦенаОПТ = Формат(ЦенаОПТ,"Ч010.2.'");
    Таб.ВывестиСекцию("Товар");
    КонецЕсли;
    КонецЕсли
    Иначе
    Ном=Ном+1;
    ЦенаОПТ = Формат(ЦенаОПТ,"Ч010.2.'");
    Таб.ВывестиСекцию("Товар");
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    Таб.Опции(0, 0, 3, 0, "Список НАЦЕНКИ по товару");
    Таб.Показать("Список НАЦЕНКИ по товару","");
    КонецПроцедуры
    //**************************************
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.628
    Симпатии:
    542
    Баллы:
    204
    Если Товар.Уровень()=1 Тогда
    Заг="По всему Товару.";
    Иначе
    Тов.ИспользоватьРодителя(Товар.Родитель);
    Заг = "По группе Товара: ";
    Заг=Заг+Товар.Родитель.Наименование;
    КонецЕсли;

    т.е. при выборе группы выбирается не она, а ее родитель. Если группа 1го уровня - берется весь справочник.
    правильнее было бы сделать этот отчет через запрос.
  3. TopicStarter Overlay
    Олег Игоревич
    Offline

    Олег Игоревич

    Регистрация:
    19 июн 2017
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    А не могли бы показать как это через запрос пишется?
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.628
    Симпатии:
    542
    Баллы:
    204
    В конфыигураторе меню-кострукторы-запрос. Там все интуитивно понятно...
    Если уж совсем тупик - организуйте удаленное подключение.. Покажу
Похожие темы
  1. PrintF
    Ответов:
    1
    Просмотров:
    1.498
  2. dima4ka_63
    Ответов:
    3
    Просмотров:
    4.349
  3. OFFF
    Ответов:
    5
    Просмотров:
    944
  4. scvo
    Ответов:
    2
    Просмотров:
    773
  5. asyses
    Ответов:
    2
    Просмотров:
    1.787
Загрузка...