7.7 Расходная накладная и Справочник Номенклатура

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Helmut, 10 дек 2010.

  1. TopicStarter Overlay
    Helmut
    Offline

    Helmut

    Регистрация:
    24 мар 2008
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Buenos dias
    Дамы и господа, простите за много букв. но постараюсь описать ситуацию как можно точнее.
    Есть старая конфигурация 1С7.7: Предприятие. Платформа: 7.70.026, Конфигурация:7.70.402
    Конфигурация в свое время была переписана под фирму, поэтому и не обновлялась.

    Теперь возникла следующая ситуация: При выборе наименования товара в накладной, необходимо чтобы товар с нулевыми остатками на дату накладной не отображался в окне справочника. Подкиньте идею, запрограммирую сам. У меня проблема как сделать в Справочнике Номенклатура строчки с нулевым остатком невидимыми.

    Заранее спасибо.
  2. sergejk74
    Offline

    sergejk74 Опытный в 1С

    Регистрация:
    15 ноя 2010
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Посмотри как это реализовано в ТиС.
    Справочник.Номенклатура.ФормаСписка.ДляПодбора
    Процедура ОтборПоВключениюВпрайс()
    Вряд ли можно придумать что то другое
  3. TopicStarter Overlay
    Helmut
    Offline

    Helmut

    Регистрация:
    24 мар 2008
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Не могли бы вы мне выслать листинг этой процедуры, у меня нет указанной вами конфигурации
  4. sergejk74
    Offline

    sergejk74 Опытный в 1С

    Регистрация:
    15 ноя 2010
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Там в листинге ничего особого нет

    Код:
    Процедура ОтборПоВключениюВпрайс()
    
    Если ВключатьВпрайс = 1 Тогда
    УстановитьОтбор("НеВключатьВпрайс", 0);
    Иначе
    УстановитьОтбор(, );
    КонецЕсли;
    
    КонецПроцедуры // ОтборПоВключениюВпрайс()
    
    Идея этого в том что в ТиС периодически нужно запускать обработку которая выставляет реквизиту справочника номенклатуры НеВключатьВпрайс (с признаками Сортировка и ОтборПоРеквизиту) значение 0 или 1 в зависимости от наличия.
    При открытии формы подбора для Списка Номенклатуры устанавливается или снимается отбор по этому реквизиту.
    [warn="!!! ВНИМАНИЕ !!!"]Пользуемся тегами[/warn]
  5. sergejk74
    Offline

    sergejk74 Опытный в 1С

    Регистрация:
    15 ноя 2010
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    еще один вариант Доработка формы подбора

    Код:
    ИспользоватьСписокЭлементов(<?>);
    Синтаксис:
    ИспользоватьСписокЭлементов(<СписокЗначений>)
    Назначение:
    Реализует фильтрацию элементов справочника, используя нединамический фильтр.
    Параметры: 
    <СписокЗначений> - необязательный параметр. Значение типа - ''СписокЗначений'' - должен представлять собой список элементов справочника, выбранных для просмотра. Если это значение пустое, то фильтр отключается.
    Замечание:
    Метод доступен только в контексте Модуля формы списка справочника и относится ко всему текущему справочнику.
    
  6. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Если Список элементов большой - будут жуткие тормоза при открытии. Я ты сделал проще - проверял количество ПОСЛЕ выбора, но ДО занесения в документ. Текущее же количество можно отображать в форме списка. Тормоза будут, но не такие сильные
  7. TopicStarter Overlay
    Helmut
    Offline

    Helmut

    Регистрация:
    24 мар 2008
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Дамы и господа, всем спасибо за помощь :angry:
    Вот что получилось после проработки всех предложений.
    Код:
    	
    БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
    БухИт.ПериодМ(ТекущаяДата());
    СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
    СчетУчета = СчетПоКоду("41.1");
    СпрМ = СоздатьОбъект("Справочник.МестаХранения");
    СпрМ.НайтиПоКоду("00002");
    МестоХранения = СпрМ.ТекущийЭлемент();
    СпсНоменклатура = СоздатьОбъект("СписокЗначений");
    СпрНоменклатура.ВыбратьЭлементы();
    Пока СпрНоменклатура.ПолучитьЭлемент() = 1 Цикл
    Элемент = СпрНоменклатура.ТекущийЭлемент();
    Остаток = БухИт.СКД(СчетУчета,"К",,Элемент, МестоХранения);
    Если Остаток <>0 Тогда
    СпсНоменклатура.ДобавитьЗначение(Элемент);
    КонецЕсли;	
    КонецЦикла;
    
    ИспользоватьСписокЭлементов(СпсНоменклатура);
    
    
    P. S. Если что, можете бить за корявость рук, но не сильно. И еще, склад пришлось задать жестко, так как он единственный.
  8. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Ну и как? Юзерам нравится задержка при открытии справочника? Если они молчат, то у вас еще маленькая база или номенклатурный список не большой.
    Вспомните меня через полгодика, а может быть и раньше))))

Поделиться этой страницей