Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Формирование инф.строки по данным склада          
arkin1976 Подменю пользователя
сообщение 23.06.12, 8:52
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0

Всем спасибо, я нашел решение, пришлось написать самому обработку по выгрузке и загрузке.
Появились новые проблемки, но они решаемые.

Хотелось спросить еще, но я так понимаю все хотят заработать денег, это естественно, я ничего против не имею.
У меня есть информационная строка. В ней отображаются Остатки, и цена
Мне надо вывести информационной строкой остатки по складах. Их у меня 4.
Либо же одной строкой все 4 склада - без разницы. Но именно информационной.


Функция Сформировать_информационную_строку()
    СтрокаЦены="";

    ТекТовар = ТекущийЭлемент();
    Если (ТекТовар.ЭтоГруппа()=0) И ((ПоказатьОстаткиЦену=0) ИЛИ (ИерархическийСписок()=0)) Тогда
        Если СтарыйТовар<>ТекТовар Тогда
            // инф. строку показываем в случае, если не показываем колонки
            
            Если ПустоеЗначение(КатегорияЦен)=0 Тогда
                ЭлЦена = глВернутьЦену(ТекТовар, КатегорияЦен);
                Если ПустоеЗначение(ЭлЦена)=0 Тогда
                    ВремЕдиница    = ЭлЦена.Единица.Получить(ВнКонтекст.ДатаДок);
                    ВремЦена    = ЭлЦена.Цена.Получить(внКонтекст.ДатаДок);
                    Если ВремЕдиница<>ТекТовар.ЕдиницаПоУмолчанию Тогда
                        ВремЦена = ?(ВремЕдиница.Коэффициент=0,ВремЦена*ТекТовар.ЕдиницаПоУмолчанию.Коэффициент/1,ВремЦена*ТекТовар.ЕдиницаПоУмолчанию.Коэффициент/ВремЕдиница.Коэффициент);
                    КонецЕсли;
                    ВремВалюта = ЭлЦена.Валюта.Получить(внКонтекст.ДатаДок);
                    СтрокаЦены = ""+КатегорияЦен+" цена "+СокрЛП(Формат(ВремЦена,глФорматСуммы))+" "+СокрЛП(ВремВалюта.Кратко)+"; ";
                Иначе
                    СтрокаЦены = ""+КатегорияЦен+" цена не задана; ";
                КонецЕсли;
            КонецЕсли;

            ТекТовар = ТекущийЭлемент();
            Если пустоеЗначение(Склад)=0 Тогда
                ВремКолво = ОстТоваров.СводныйОстаток(Фирма,ТекТовар,Склад,"ОстатокТовара");
            Иначе
                ВремКолво = ОстТоваров.СводныйОстаток(Фирма,ТекТовар,,"ОстатокТовара");
            КонецЕсли;
            ВремРезерв = РезТоваров.СводныйОстаток(ТекТовар,,"РезервТовара");    
            Если ТекТовар.ЕдиницаПоУмолчанию.Коэффициент > 1 Тогда
                ВремКолво     = ВремКолво / ТекТовар.ЕдиницаПоУмолчанию.Коэффициент;
                ВремРезерв     = ВремРезерв / ТекТовар.ЕдиницаПоУмолчанию.Коэффициент;
            КонецЕсли;
            ИнформационнаяСтрока = СтрокаЦены+
                                   "Остаток: "+СокрЛП(Формат(ВремКолво, глФорматКоличестваВформах))+" "+ТекТовар.ЕдиницаПоУмолчанию.Единица+"; "+
                                   "Резерв: "+СокрЛП(Формат(ВремРезерв, глФорматКоличестваВформах))+" "+ТекТовар.ЕдиницаПоУмолчанию.Единица;
            СтарыйТовар=ТекТовар;
        КонецЕсли;
    Иначе
        ИнформационнаяСтрока="";
    КонецЕсли;
    Возврат ИнформационнаяСтрока;
КонецФункции

Из данного примера видно что данные по остатку она берет из выбраного склада или по всем если значение склада 0. Как взять значение по конкретному складу, чтобы вставить в информационную строку.
Может я что неправильно сформулировал, поправьте.

То есть на выводе чтобы было примерно так.

Склад1 - 10 шт.
Склад2 - 5 шт.
Склад3 - 15 шт.
Склад4 - 20шт.


Там стоит условие на выбор склада, мне это условие не надо. Надо жестко чтобы показывало по нужному складу, который будет оговорен в модуле.

Сообщение отредактировал MATEVI - 23.06.12, 8:55
Причина редактирования: Правила п.12


Signature
1С Предприятие 7.7 сетевая
7.70.027
ТиС 7.70.022

MATEVI Подменю пользователя
сообщение 23.06.12, 8:54
Сообщение #2

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 958 раз
Рейтинг: 0

2 arkin1976

 ! 

Ознакомьтесь с правилами! В следующий раз все, что не по правилам будет удалено!
 

Pepe Подменю пользователя
сообщение 23.06.12, 14:00
Сообщение #3

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1439
Из: Ужгород
Спасибо сказали: 761 раз
Рейтинг: 230

Количество товара у вас рассчитывается и зависит от склада в
               ВремКолво = ОстТоваров.СводныйОстаток(Фирма,ТекТовар,Склад,"ОстатокТовара");

Ее и можете использовать при выводе информационной строки меняя переменную "Склад". Вы привели только одну процедуру, а рассчет отстатков зависит от выбора значения склада и может где-то еще надо будет что-то подправить.

Спасибо сказали: arkin1976,

mister-x Подменю пользователя
сообщение 23.06.12, 14:02
Сообщение #4

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

знаходимо необхідний склад (по коду чи по назві, краще по коду або іншій унікальній ознаці) і присвоюємо його змінні Склад в цьому коді:
Цитата
Если пустоеЗначение(Склад)=0 Тогда
                ВремКолво = ОстТоваров.СводныйОстаток(Фирма,ТекТовар,Склад,"ОстатокТовара");
            Иначе
                ВремКолво = ОстТоваров.СводныйОстаток(Фирма,ТекТовар,,"ОстатокТовара");
            КонецЕсли;
див. методи довідника НайтиПоКоду, НайтиПоНаименованию, НайтиПоРеквизиту

+
Цитата(Pepe @ 23.06.12, 14:00) *
и может где-то еще надо будет что-то подправить.


Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 25.06.24, 20:15
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!