| 
    
        
     
     | 
    
    
  | 
Не корректно работает ПолучитьПоследнее для регистра сведений | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        themister    
     06.09.12 
            ✎
    17:59 
 | 
         
        Доброго дня!
  
        Господа, столкнулся со следующей проблемой: решил сделать печать прайса всей имеющейся в наличии номенклатуры. И все бы ничего, но в функции формирования макета, я не могу получить срез последних цен. Хотя в других случаях использование функции получения цен работает стабильно. Привожу код самой функции формирования цен (выполняется на сервере): 
 
 А вот и код процедуры формирования макета прайса: 
 
 Ничего не могу понять. Буду благодарен за помощь! (1С версии 8.2, своя конфигурация)  | 
|||
| 
    1
    
        DrShad    
     06.09.12 
            ✎
    18:03 
 | 
         
        за такой код нужно наказывать     
         | 
|||
| 
    2
    
        DrShad    
     06.09.12 
            ✎
    18:08 
 | 
         
        у тя что ни одной типовой нету? смотри как там реализована печать и делай нормально     
         | 
|||
| 
    3
    
        Wobland    
     06.09.12 
            ✎
    18:09 
 | 
         
        >ЕСЛИ ВЫЗЫВАЮТ ИЗ МАКЕТА
  
        тяжёлое наследие семёрки?  | 
|||
| 
    4
    
        Wobland    
     06.09.12 
            ✎
    18:10 
 | 
         
        >Процедура ПечатьПрайс(ТабДок, Ссылка)
  
        всю к чертям  | 
|||
| 
    5
    
        Wobland    
     06.09.12 
            ✎
    18:11 
 | 
         
        получаешь запросом таблицу вида Номенклатура|Остаток|Цена (если цена какая-то хитрая, рассчитываешь колонку отдельно). выводишь таблицу красиво в ТабДок     
         | 
|||
| 
    6
    
        themister    
     06.09.12 
            ✎
    18:11 
 | 
         
        Нет, нету )) 
  
        Я вообще 1С использую не в профессиональных целях, я свою конфигурацию написал для своего маленького бизнеса ))) но по теме: почему в если из формы вызываю ф-цию РасчитатьРозничнуюЦену(Номенклатура) все ОК, если из Процедура ПечатьПрайс(ТабДок, Ссылка) то не работает?  | 
|||
| 
    7
    
        Reset    
     06.09.12 
            ✎
    18:11 
 | 
         
        Секция.Область("R1C5").Текст = НаСервере.РасчитатьРозничнуюЦену(Номенклатура.ССЫЛКА);  // <-- ВОТ ЗДЕСЬ Я НЕ МОГУ ПОЛУЧИТЬ ЦЕНУ     
         | 
|||
| 
    8
    
        themister    
     06.09.12 
            ✎
    18:12 
 | 
         
        Можно запрос, если не сложно. Не сильно в них волоку..     
         | 
|||
| 
    9
    
        Wobland    
     06.09.12 
            ✎
    18:12 
 | 
         
        а ещё есть СКД     
         | 
|||
| 
    10
    
        Reset    
     06.09.12 
            ✎
    18:12 
 | 
         
        Но весть код архибредовый     
         | 
|||
| 
    11
    
        Reset    
     06.09.12 
            ✎
    18:12 
 | 
         
        весь     
         | 
|||
| 
    12
    
        Wobland    
     06.09.12 
            ✎
    18:12 
 | 
         
        (8) учись, это очень нужно. ну или найми специалиста     
         | 
|||
| 
    13
    
        themister    
     06.09.12 
            ✎
    18:14 
 | 
         
        Учился бы, если бы это была моя специализация. А так изучаю 1С по мере доработки функционала.     
         | 
|||
| 
    14
    
        Reset    
     06.09.12 
            ✎
    18:14 
 | 
         
        (6) Потому что во втором случае ты не ссылку на номенклатуру передаешь, а выборку     
         | 
|||
| 
    15
    
        Reset    
     06.09.12 
            ✎
    18:15 
 | 
         
        Не называл бы выборку номенклатурой, не ошибся бы     
         | 
|||
| 
    16
    
        Wobland    
     06.09.12 
            ✎
    18:15 
 | 
         
        (13) в общем, надо всё удалять и делать по новой     
         | 
|||
| 
    17
    
        themister    
     06.09.12 
            ✎
    18:16 
 | 
         
        т.е. передать в качестве параметра Номенклатура.Ссылка?     
         | 
|||
| 
    18
    
        Reset    
     06.09.12 
            ✎
    18:17 
 | 
         
        (17) -> (7)     
         | 
|||
| 
    19
    
        Wobland    
     06.09.12 
            ✎
    18:20 
 | 
         
        простейшая иллюстрация работы с ТабДоком. это если не хочется СКД
  
        Пакет доступен по ссылке: http://disk.tom.ru/67xsqht  | 
|||
| 
    20
    
        themister    
     06.09.12 
            ✎
    18:20 
 | 
         
        (18) Извиняюсь, не заметил сразу Ваш ответ. Действительно помогло.
  
        А как можно сделать не так коряво, на будущее ))  | 
|||
| 
    21
    
        Reset    
     06.09.12 
            ✎
    18:21 
 | 
         
        (20) --> (16) :)     
         | 
|||
| 
    22
    
        themister    
     06.09.12 
            ✎
    18:22 
 | 
         
        (19) Я пока еще не очень догоняю как соединить Номенклатуру (Справочник) и Цены (Регистр) и там же выбрать то что есть в наличии из Остатков (регистр)     
         | 
|||
| 
    23
    
        themister    
     06.09.12 
            ✎
    18:22 
 | 
         
        (20) :)))     
         | 
|||
| 
    24
    
        Reset    
     06.09.12 
            ✎
    18:23 
 | 
         
        (22) Запрос на остатки, левое соединение на цены     
         | 
|||
| 
    25
    
        vmv    
     06.09.12 
            ✎
    18:26 
 | 
         
        хотел нахамить, прочтя сабж, но человек вежлив и делает первые шаги, надеюсь взлетит когда-нибудь - главное стараться.
  
        По сути ничего не скажу - такой код вызывает у меня слезы, а когда я реву - не могу думать  | 
|||
| 
    26
    
        Wobland    
     06.09.12 
            ✎
    18:27 
 | 
         
        (22) черновой набросок, для понимания того, что имеется в виду:
  
        "ВЫБРАТЬ | спрНоменклатура.Ссылка, | ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Поле1, | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Поле2 |ИЗ | Справочник.Номенклатура КАК спрНоменклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних | ПО спрНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки | ПО спрНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура |ГДЕ | ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) > 0"  | 
|||
| 
    27
    
        Reset    
     06.09.12 
            ✎
    18:29 
 | 
         
        (26) Если проверяется на>0, справочник не нужен, достаточно просто остатки взять     
         | 
|||
| 
    28
    
        themister    
     06.09.12 
            ✎
    18:29 
 | 
         
        ребята, я конечно понимаю что код никакой, но я не программист! )))     
         | 
|||
| 
    29
    
        themister    
     06.09.12 
            ✎
    18:30 
 | 
         
        Всем большое СПАСИБО!     
         | 
|||
| 
    30
    
        Reset    
     06.09.12 
            ✎
    18:32 
 | 
         
        вот покороче
  
        ВЫБРАТЬ Остатки.Номенклатура, Остатки.Номенклатура.Код, Остатки.КоличествоОстаток, ЦеныНоменклатурыСрезПоследних.Цена ИЗ РегистрНакопления.ОстаткиНаСкладах.Остатки КАК Остатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНаНоменклатуру.СрезПоследних КАК Цены ПО Остатки.Номенклатура = Цены.Номенклатура  | 
|||
| 
    31
    
        Wobland    
     06.09.12 
            ✎
    18:33 
 | 
         
        (27) а отрицательные остатки? но согласен, да
  
        (30) а где священный ЕСТЬNULL?  | 
|||
| 
    32
    
        Reset    
     06.09.12 
            ✎
    18:33 
 | 
         
        isNull конечно на цену добавить     
         | 
|||
| 
    33
    
        Reset    
     06.09.12 
            ✎
    18:34 
 | 
         
        (31) Забыл ;]     
         | 
|||
| 
    34
    
        Wobland    
     06.09.12 
            ✎
    18:35 
 | 
         
        (29) что, уже доходить начало? или полностью дошло?     
         | 
|||
| 
    35
    
        themister    
     06.09.12 
            ✎
    19:10 
 | 
         
        (34) да, дошло. а благодаря (30) я въехал в соединение )     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |