Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Волшебство программирования на 1С:Предприятие 7.7 и 8.0



Волшебство программирования на 1С:Предприятие 7.7 и 8.0

v8: Размещение колонки с остатками в списке справочника

Размещение колонки с остатками в списке справочникаАвтор статьи: acsent | Редакторы: Волшебник, Гений 1С, ZolotarevAA, romix, FlyingOff
Последняя редакция №16 от 01.08.07 | История
URL: http://kb.mista.ru/article.php?id=310

Ключевые слова: Форма, остатки, колонка, справочник, список


Вариант 1: В процедуре ПриПолученииДанных


Перем Запрос;

Процедура ПриОткрытии()

    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    Рег.Номенклатура,
    |    Рег.КоличествоОстаток
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки(
    |        ,
    |        Склад = &Склад
    |            И Номенклатура В (&Номенклатура)) КАК Рег";

    Запрос.УстановитьПараметр("Склад", Склад);
КонецПроцедуры

Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)
  Если Элемент.Колонки.Остаток.Видимость Тогда
    МассивНоменклатуры = Новый Массив;
    Для Каждого ОформлениеСтроки ИЗ ОформленияСтрок Цикл

        Если НЕ ОформлениеСтроки.ДанныеСтроки.ЭтоГруппа Тогда
            МассивНоменклатуры.Добавить(ОформлениеСтроки.ДанныеСтроки.Ссылка);
        КонецЕсли;    
    КонецЦикла;    
    
    Запрос.УстановитьПараметр("Номенклатура", МассивНоменклатуры);
    тзОстатки = Запрос.Выполнить().Выгрузить();

    Для Каждого ОформлениеСтроки ИЗ ОформленияСтрок Цикл

        Если НЕ ОформлениеСтроки.ДанныеСтроки.ЭтоГруппа Тогда
            СтрТЗ = тзОстатки.Найти(ОформлениеСтроки.ДанныеСтроки.Ссылка, "Номенклатура");
            Если СтрТЗ <> Неопределено Тогда

                ОформлениеСтроки.Ячейки.Остаток.УстановитьТекст(СтрТЗ.КоличествоОстаток);
            КонецЕсли;    
        КонецЕсли;    
    КонецЦикла;    
  КонецЕсли;
КонецПроцедуры



см. также:
Книга знаний: v8: Дополнительная вычисляемая или текстовая колонка в списке

Вариант 2: Кэширование остатков в тз при открытии


Перем тзОстатки;


Процедура ПриОткрытии()

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

Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)
  Если Элемент.Колонки.Остаток.Видимость Тогда

    Для Каждого ОформлениеСтроки ИЗ ОформленияСтрок Цикл
        Если НЕ ОформлениеСтроки.ДанныеСтроки.ЭтоГруппа Тогда

            СтрТЗ = тзОстатки.Найти(ОформлениеСтроки.ДанныеСтроки.Ссылка, "Номенклатура");
            Если СтрТЗ <> Неопределено Тогда
                ОформлениеСтроки.Ячейки.Остаток.УстановитьТекст(СтрТЗ.КоличествоОстаток);
            КонецЕсли;    
        КонецЕсли;    
    КонецЦикла;    
  КонецЕсли;

КонецПроцедуры

Минусы данного варианта:
1) Долгое открывание формы
2) Неоперативные остатки
Плюсы:
1) Более быстрый скролинг (будет еще быстрей, когда в 8.1 появятся индексы для ТЗ)


Вариант 3: Использование обработчика событий (ВК от romix'а)


Книга знаний: Асинхронные события 1С: полезные алгоритмы

Минусы данного варианта:
1) Требуется ВК (впрочем, для кого-то это плюс)

Плюсы:
1) Скорость близка к максимально возможной (т.к. остаток хранится в таблице справочника).
2) Можно применять и в 7.7 (по ссылке приведен пример для 7.7)
3) Многие полезные алгоритмы реализуются похожим способом (по ссылке приведены некоторые из них).

Во всяком случае, пользователи получат остаток в форме списка (плюс отбор только тех товаров, которые есть в данный момент в наличии) без какого либо торможения при подборе или просмотре.

Обновление остатка в справочнике происходит после проведения/отмены проведения документа. Если карточка товара в этот момент была заблокирована, также по событию после ее закрытия.


Уважаемые коллеги!

 

Меня зовут Илья Отькало. Я хотел бы немного рассказать о себе.

Сам я из Саратова, закончил физфак СГУ и заочно – Экономическую Академию. Несколько лет проработал замдиректора одной из торговых фирм, где и начал серьезно изучать 1С. Желание самореализации и острая потребность в деньгах в связи с рождением сына привела меня в Москву. Начинал работу в «1-м Архитекторе бизнеса». Проработал 3 месяца внедренцем, после чего был назначен руководителем отдела внедрения (пришлось за один месяц сдать аж 2 сертификата «Специалист» по 7.7). Проработал в этой должности 3 года. Отдел стал самым крупным в отрасли прямоуправляемым подразделением (до 50 человек), в итоге он перерос в департамент. В настоящее время уже 2 года работаю в самой крупной компании-франчайзи «1Сухучет и торговля (БИТ)» www.1cbit.ru. В настоящий момент компания имеет около 40 офисов в России и СНГ. Я одновременно являюсь директором по внедрению всей компании, т.е. помогаю выстраивать отделы внедрения всем офисам, а также руковожу своим офисом (офис в Москве на м. Курская). Мой офис – единственный из 11 московских кроме центрального, имеющий выделенный проектный отдел.

Если Вы – начинающий специалист 1С, приходите – я помогу вам стать настоящим знатоком своего дела. Под моим руководством профессионально росли такие легенды «Волшебного» форума www.mista.ru, как Asmody, PR, ШтушаКутуша, Dr Ravik, многие другие.  Там же я работал на совместных проектах с владельцем ресурса Волшебником (Станиславом Митичкиным).

Если Вы мечтаете работать на крупных проектах по внедрению УПП, приходите – у меня для вас есть работа!

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

 

В настоящий момент открыты следующие вакансии:

1.    Начинающий специалист отдела внедрения. От вас требуется: навыки программирования на любых языках, знание основ бухучета, и самое главное – целеустремленность, активная жизненная позиция. Потому что придется много учиться и работать.  Студенты д.о. приглашаются только с последних курсов. После прохождения  бесплатного «поточного» обучения (1 месяц) заработная плата составляет 15000 – 25000 р.

2.    Программисты 1С и консультанты 1С с опытом работы. Как на платформе 7.7, так и на платформе 8. Приходите – будем обсуждать, где Вы будете более полезны. Зарплата опытного специалиста составляет 30000 – 80000. Точно сказать сложно. Слишком многое зависит от квалификации – это определяется в процессе собеседования.

3.    Аналитики со знанием 1С. Сейчас многие дискутируют, чем различаются бизнес-аналитики, системные аналитики, и т.д.  От тех специалистов, которые нужны мне в проектный отдел, требуется: знание хотя бы двух подсистем УПП; умение понять и описать задачи клиента и воплотить их в УПП; умение поставить задачу программисту; умение консультировать самому. Зарплата аналитика составляет 50000 (гарантированно) – 100000 р.

 

Жду Ваши резюме по электронной почте! Можете стучаться в ICQ.

 

С уважением.
Отькало Илья
Директор по внедрению,
руководитель офиса на м. Курской
Компания "Бухучет и торговля" (БИТ)
Москва, м. Курская,
ул. Нижняя Сыромятническая, д.11, корп.1
.
Телефон (495) 580-37-78(многоканальный), 4375(внут.).


Официальный сайт рассылки - www.mista.ru
Волшебный форум -
www.forum.mista.ru
Книга знаний - www.kb.mista.ru

С уважением,
Станислав Митичкин (Волшебник)
stasmit@mail.ru



В избранное