Имя: Пароль:
1C
1С v8
1C:Больничная аптека - как получить кол-во упаковок из регистра?
0 katerinaUniv
 
23.01.13
19:46
Добрый вечер! Есть конфигурация 1С:Медицина. Больничная аптека, в ней остатки хранятся в упаковках (в документах), а вот в остатках (регистрах накопления) пересчитываются, предположительно на количество таблеток/ампул. Код запутан. Никто не лазил, не знает случайно? Нужно для выгрузки данных на сайт росздравнадзора
1 Нуф-Нуф
 
23.01.13
19:50
Код запутан. в мемориз
2 katerinaUniv
 
23.01.13
20:00
(1)не поняла
3 katerinaUniv
 
23.01.13
20:00
там из одной процедуры попадаешь в другую, я так полконфы выложу
4 Нуф-Нуф
 
23.01.13
20:03
ты еще типовые не видела
5 Нуф-Нуф
 
23.01.13
20:03
отладчик в руки и вперед
6 Нуф-Нуф
 
23.01.13
20:04
или поиском по конфиге со словом Коэффициент
7 katerinaUniv
 
23.01.13
20:17
коэффициентов много, пойду с запросом разбираться

ТекстЗапросаКоличество = "
       |ВЫРАЗИТЬ(ВЫБОР
       |    КОГДА НЕ Товары.Упаковка = ЗНАЧЕНИЕ(Справочник.УМО_ДополнительныеЕдиницыИзмерения.ПустаяСсылка)
       |        ТОГДА ТоварныеЗапасыОстатки.КоличествоОстаток *
       |            ВЫБОР
       |                КОГДА Товары.Упаковка.ТипБазовойЕдиницыУпаковки = Товары.БазоваяЕдиницаИзмерения.ТипЕдиницы
       |                    ТОГДА Товары.БазоваяЕдиницаИзмерения.Коэффициент
       |                КОГДА Товары.Плотность = 0
       |                    ТОГДА 0
       |                КОГДА Товары.БазоваяЕдиницаИзмерения.ТипЕдиницы = ЗНАЧЕНИЕ(Перечисление.УМО_ТипыДополнительныхЕдиницИзмерения.ЕдиницаМассы)
       |                    ТОГДА Товары.БазоваяЕдиницаИзмерения.Коэффициент / Товары.Плотность
       |                КОГДА Товары.БазоваяЕдиницаИзмерения.ТипЕдиницы = ЗНАЧЕНИЕ(Перечисление.УМО_ТипыДополнительныхЕдиницИзмерения.ЕдиницаОбъема)
       |                    ТОГДА Товары.БазоваяЕдиницаИзмерения.Коэффициент * Товары.Плотность
       |                ИНАЧЕ 0 // ошибка!!!
       |            КОНЕЦ / Товары.Упаковка.Коэффициент
       |    КОГДА НЕ Товары.ОсновнаяЕдиницаУчета = ЗНАЧЕНИЕ(Справочник.УМО_ДополнительныеЕдиницыИзмерения.ПустаяСсылка)
       |        ТОГДА
       |            ВЫБОР
       |                КОГДА Товары.ОсновнаяЕдиницаУчета = Товары.БазоваяЕдиницаИзмерения
       |                    ТОГДА ТоварныеЗапасыОстатки.КоличествоОстаток
       |                ИНАЧЕ ТоварныеЗапасыОстатки.КоличествоОстаток *
       |                 ВЫБОР
       |                    КОГДА Товары.ОсновнаяЕдиницаУчета.ТипЕдиницы = ЗНАЧЕНИЕ(Перечисление.УМО_ТипыДополнительныхЕдиницИзмерения.ЕдиницаНоменклатуры)
       |                        ТОГДА ВЫБОР
       |                            КОГДА Товары.Упаковка = ЗНАЧЕНИЕ(Справочник.УМО_ДополнительныеЕдиницыИзмерения.ПустаяСсылка)
       |                                ТОГДА 1
       |                            ИНАЧЕ ВЫБОР
       |                                КОГДА Товары.Упаковка.ТипБазовойЕдиницыУпаковки = Товары.БазоваяЕдиницаИзмерения.ТипЕдиницы
       |                                    ТОГДА Товары.БазоваяЕдиницаИзмерения.Коэффициент
       |                                КОГДА Товары.Плотность = 0
       |                                    ТОГДА 0
       |                                КОГДА Товары.БазоваяЕдиницаИзмерения.ТипЕдиницы = ЗНАЧЕНИЕ(Перечисление.УМО_ТипыДополнительныхЕдиницИзмерения.ЕдиницаМассы)
       |                                    ТОГДА Товары.БазоваяЕдиницаИзмерения.Коэффициент / Товары.Плотность
       |                                КОГДА Товары.БазоваяЕдиницаИзмерения.ТипЕдиницы = ЗНАЧЕНИЕ(Перечисление.УМО_ТипыДополнительныхЕдиницИзмерения.ЕдиницаОбъема)
       |                                    ТОГДА Товары.БазоваяЕдиницаИзмерения.Коэффициент * Товары.Плотность
       |                                ИНАЧЕ 0 // ошибка!!!
       |                            КОНЕЦ / Товары.Упаковка.Коэффициент
       |                        КОНЕЦ
       |                    КОГДА Товары.ОсновнаяЕдиницаУчета.ТипЕдиницы = ЗНАЧЕНИЕ(Перечисление.УМО_ТипыДополнительныхЕдиницИзмерения.ЕдиницаУпаковкаКАТ)
       |                        ТОГДА ВЫБОР
       |                            КОГДА Товары.ОсновнаяЕдиницаУчета.ТипБазовойЕдиницыУпаковки = Товары.БазоваяЕдиницаИзмерения.ТипЕдиницы
       |                                ТОГДА Товары.БазоваяЕдиницаИзмерения.Коэффициент
       |                            КОГДА Товары.Плотность = 0
       |                                ТОГДА 0
       |                            КОГДА Товары.БазоваяЕдиницаИзмерения.ТипЕдиницы = ЗНАЧЕНИЕ(Перечисление.УМО_ТипыДополнительныхЕдиницИзмерения.ЕдиницаМассы)
       |                                ТОГДА Товары.БазоваяЕдиницаИзмерения.Коэффициент / Товары.Плотность
       |                            КОГДА Товары.БазоваяЕдиницаИзмерения.ТипЕдиницы = ЗНАЧЕНИЕ(Перечисление.УМО_ТипыДополнительныхЕдиницИзмерения.ЕдиницаОбъема)
       |                                ТОГДА Товары.БазоваяЕдиницаИзмерения.Коэффициент * Товары.Плотность
       |                            ИНАЧЕ 0 // ошибка!!!
       |                        КОНЕЦ
       |                    КОГДА Товары.ОсновнаяЕдиницаУчета.ТипЕдиницы = Товары.БазоваяЕдиницаИзмерения.ТипЕдиницы
       |                        ТОГДА Товары.БазоваяЕдиницаИзмерения.Коэффициент
       |                    КОГДА Товары.Плотность = 0
       |                        ТОГДА 0
       |                    КОГДА Товары.БазоваяЕдиницаИзмерения.ТипЕдиницы = ЗНАЧЕНИЕ(Перечисление.УМО_ТипыДополнительныхЕдиницИзмерения.ЕдиницаМассы)
       |                        ТОГДА Товары.БазоваяЕдиницаИзмерения.Коэффициент / Товары.Плотность
       |                    КОГДА Товары.БазоваяЕдиницаИзмерения.ТипЕдиницы = ЗНАЧЕНИЕ(Перечисление.УМО_ТипыДополнительныхЕдиницИзмерения.ЕдиницаОбъема)
       |                        ТОГДА Товары.БазоваяЕдиницаИзмерения.Коэффициент * Товары.Плотность
       |                 КОНЕЦ / Товары.ОсновнаяЕдиницаУчета.Коэффициент
       |            КОНЕЦ
       |    ИНАЧЕ ТоварныеЗапасыОстатки.КоличествоОстаток    
       |    КОНЕЦ КАК ЧИСЛО(15, 3))";
8 katerinaUniv
 
23.01.13
22:51
нашла процедуру, УМО_КАТ.ПересчитатьКоличествоВБазовуюЕдиницуИзмерения(Номенклатура, 1, ЕдиницаИзмерения), она возвращает коэффициент, количество номенклатуры из регистра ТоварыНаСкладах надо разделить на этот коэффициент, и получим как раз то, что нам надо = количество номенклатуры в упаковках.

Если кого интересует выгрузка медикаментов на сайт росздравнадзора, обращайтесь! [email protected]