![]() |
![]() |
![]() |
|
Не корректно работает ПолучитьПоследнее для регистра сведений | ☑ | ||
---|---|---|---|---|
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) я въехал в соединение )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |