|
1с 7.7 регистр сведений или аналог | ☑ | ||
---|---|---|---|---|
0
Coldboy
20.03.15
✎
11:37
|
Здравствуйте. Задача такова, для элемента справочника склад, нужно сделать свои цены. В итоге, чтобы в документах, где есть склад, при выборе номенклатуры выходила цена для данного склада. Как это в 7.7 организуется ? Регистр сведений я что-то не нашел или его аналог.
|
|||
1
PuhUfa
20.03.15
✎
11:38
|
Справочник
|
|||
2
VladZ
20.03.15
✎
12:10
|
(0) Посмотри, как организовано хранение данных по ценам в ТИС. И сделай так же, но "привяжись" к складу.
|
|||
3
VladZ
20.03.15
✎
12:13
|
Не знаю, что у тебя за конфа. Для ТИС я бы делал так: в справочник "Склады" добавил реквизит "Тип цен". Основной механизм ценообразование не трогал. Доработал нужные документы: добавил алгоритм получения цены по типу цены, указанного у склада.
Можно "замутить" сложный алгоритм: если у контрагента указан тип цены - ставим его. Не указан - по цене склада. |
|||
4
Heckfy
20.03.15
✎
12:14
|
(0) Кури объект Периодический.
|
|||
5
Бертыш
20.03.15
✎
12:15
|
Я регистр сведений делал на регистре накопления
|
|||
6
Бертыш
20.03.15
✎
12:21
|
Там только надо учитывать ограничения регистров на 7.7 —
Регистр может быть только подчинённый регистратору и дата движений может быть только датой регистратора. |
|||
7
Злопчинский
20.03.15
✎
12:32
|
Приизмегениисклада
Сделать процедуру Адресоваться в аналогичную глобальную В ней в докуент в реквизит типцен подставлять типцен из карточки склада и запускать типовую процедуру пересчета табчасти документа Все |
|||
8
Coldboy
20.03.15
✎
12:33
|
Конфа самописная
|
|||
9
Злопчинский
20.03.15
✎
12:33
|
А вообще похоже на прострел ноги когда она чесалась
Непонятно что автору надо решить Пока автор написал как он хочет решить А что именно хз Возможно пытается гвоздь в рельсу забивать |
|||
10
Злопчинский
20.03.15
✎
12:34
|
(8) сообщество не возражает
|
|||
11
Coldboy
20.03.15
✎
12:34
|
(9) я написал, что нужно решить, чтобы при выборе номенклатуры в документе с выбранным складом, его цена на нее проставлялась и все.
|
|||
13
Coldboy
20.03.15
✎
12:35
|
и где хранить и установить эти цены, и как их оперативно забирать.
|
|||
14
Spyke
20.03.15
✎
12:38
|
(13) Ответ в (3)
|
|||
15
silent person
20.03.15
✎
12:38
|
(13) справочник "Цены" подчиненный справочнику "Номенклатура". С реквизитами "Склад" и периодицеским реквизитом "Цена"
|
|||
16
Spyke
20.03.15
✎
12:39
|
+14 Хранить как сейчас в справочнике, конечно еслу у тебя цена не реквизи спр номенклатура. А то знаю таких деятелей
Которые и цену и штрихкод хранят как реквизит, а потом добавляют цена1,цена2 и т.д. |
|||
17
Coldboy
20.03.15
✎
12:41
|
Значит, нужно создать справочник цены правильно? Там реквизиты Номенклатура, цена, типы цены или просто цена даже пойдет, история не так важна.
Далее сделать привязка складов по типу цен верно? |
|||
18
VladZ
20.03.15
✎
12:44
|
(13) ТИС смотрел?
Есть справочник "ЦеныНоменклатуры" (названия мог наврать, под рукой нету конфы). Подчинен номенклатуре. Здесь есть периодический реквизит Цена. Для контрагентов сделано так: в карточке договора указан тип цены, который должен "работать" для контрагента. Я предлагаю сделать по аналогии. В карточку склада добавить тип цен. И допилить документы, в которых тебе нужно получать цены для склада. |
|||
19
VladZ
20.03.15
✎
12:45
|
+18 В глобальнике есть функции получения цен.
Там что-то типа "ВернутьЦену" или "ПолучитьЦену". |
|||
20
Новый участник
20.03.15
✎
12:45
|
(3), (7) Хорошо придумано.
(15) Много периодики раздумают и замедляют базу. |
|||
21
Coldboy
20.03.15
✎
12:47
|
(7) немного не понял.
|
|||
22
Coldboy
20.03.15
✎
12:49
|
(7) зачем при изменение, если выбирают склад сначала, а потом будут номенклатуру добавлять.
Пока вариант (17) пока так пробую |
|||
23
VladZ
20.03.15
✎
13:07
|
(17) Скопируй весь функционал с ТиСа. Прям один в один.
|
|||
24
VladZ
20.03.15
✎
13:08
|
+23 Можно будет готовые функции из ТиС использовать.
А если наваяешь свою структуру - под нее нужно писать свои функции. Смысл? |
|||
25
Lazy Stranger
20.03.15
✎
13:14
|
(24) функция там всего одна - глВернутьЦену()
(0) можно сделать по аналогии со старинными конфами раруса/астора: оборотный регистр накопления с измерениями по которым нужно хранить цену, функция поиска цены ищет последнее движение регистра с фильтром по этим измерениям |
|||
26
Lazy Stranger
20.03.15
✎
13:17
|
хотя можно не париться и просто тип цены к складу привязать, так же как в ТиС они к контрагентам (точнее договорам) привязаны
|
|||
27
Coldboy
20.03.15
✎
13:27
|
Да нет справочника тип цен, там 4 справочника. Самописная конфа. все нужно самому писать. Простой вариант, что я предложил же будет работать?
|
|||
28
Spyke
20.03.15
✎
13:31
|
(27) Поиск будет долгий, если пользоваться штатными средствами
|
|||
29
VladZ
20.03.15
✎
13:37
|
(17) Делай справочник "Цены", который будет подчинен номенклатуре. Реквизиты: Тип цены и цена. В идеале, цена - периодический реквизит. Не хочешь - не делай. (но все равно потом придешь к периодике).
|
|||
30
Spyke
20.03.15
✎
13:40
|
(27) Слушай (29) дело говорит, технология годами проверена , полет нормальный
|
|||
31
Lazy Stranger
20.03.15
✎
13:43
|
(29) +1, можно, конечно, вместо ТипаЦен в справочнике Цены реквизит "склад" сделать, но как только появятся 2 склада с одинаковыми ценами станет понятно, что лучше всё же для типов цен отдельный справочник сделать
|
|||
32
Coldboy
20.03.15
✎
13:45
|
(31) уже 10 складов, так что придется тип цен делать, и 3 типа цен уже.
(29) а заполнять, переодический справочник как? есть норма инструкция по работе с ним? |
|||
33
Spyke
20.03.15
✎
13:46
|
(32) УстановитьРеквизитСправочника()
|
|||
34
Spyke
20.03.15
✎
13:47
|
УстановитьРеквизитСправочника(<?>,,,,,,);
Синтаксис: УстановитьРеквизитСправочника(<ЭлементСправочника>,<НазваниеРеквизита>,<Значение>,<ДатаУстановки>,<ИмяТипа>,<Длина>,<Точность>) Назначение: Записать значение периодического реквизита справочника с привязкой к проведению документа. Параметры: <ЭлементСправочника> - элемент справочника, в который будет запись; <НазваниеРеквизита> - название периодического реквизита справочника; <Значение> - новое значение периодического реквизита; <ДатаУстановки> - дата установки нового значения периодического реквизита. Дата установки имеет смысл только для не оперативных документов. <ИмяТипа> - необязательный параметр. Строковое выражение - название типа данных (или Вид субконто); <Длина> - необязательный параметр. Число - длина числового или строкового значения; <Точность> - необязательный параметр. Число знаков после десятичной точки. Замечание: Параметры <ИмяТипа>, <Длина> и <Точность> следует указывать при установке значения периодического реквизита справочника, имеющего неопределенный тип. Замечание: Метод доступен только в Модуле документа в предопределенной процедуре ОбработкаПроведения. |
|||
35
Coldboy
20.03.15
✎
13:55
|
(34) а если еще по определнному типу цен ?
|
|||
36
Coldboy
20.03.15
✎
14:29
|
а реально сделать поиск в справочнике по нескольким реквизитам в 7.7?
тип такого СпрСотр.НайтиПоРеквизиту("Рек1,Рек2","Знач1,Знач2"); Как это вообще делается? |
|||
37
Spyke
20.03.15
✎
14:38
|
(36) Запросом
|
|||
38
Spyke
20.03.15
✎
14:42
|
(35) сначало нужно записать или найти элемент справочника а
потом уже УстановитьРеквизитСправочника А справочник уже имеет реквизит типцен |
|||
39
Coldboy
20.03.15
✎
14:52
|
(37) можно пример запроса?
|
|||
40
Spyke
20.03.15
✎
14:54
|
(39) ТекстЗапроса =
"//{{ЗАПРОС(Сформировать) |Номенклатура = Справочник.Номенклатура.ТекущийЭлемент; |Группировка Номенклатура Без Групп;"; ТекстЗапроса = ТекстЗапроса + "Условие (Номенклатура.ВидНоменклатуры в Вид);"; |
|||
41
Coldboy
20.03.15
✎
14:59
|
(40) извините, я 7.7 запросы не так понимаю, а где мой вариант, отбор по 2 позициям.
Мой справочник Цены, есть реквизиты ТипЦен, и номенклатура. по ним сделать и срез, и получить цену. |
|||
42
Spyke
20.03.15
✎
15:05
|
(41) СпрСотр.НайтиПоРеквизиту("Рек1,Рек2","Знач1,Знач2");
|Сотр = Справочник.Сотрудники.ТекущийЭлемент; |Группировка Сотр Без Групп;"; ТекстЗапроса = ТекстЗапроса + "Условие (Сотр.Рек1 в ВыбРек1);"; ТекстЗапроса = ТекстЗапроса + "Условие (Сотр.Рек2 в ВыбРек2);"; |
|||
43
Spyke
20.03.15
✎
15:13
|
+42 Выбрек1 = Знач1
ВыбРек2 = Знач2 |
|||
44
Coldboy
20.03.15
✎
15:15
|
(43) а как условие установить в запрос по параметру?
|
|||
45
Spyke
20.03.15
✎
15:17
|
Условие (Сотр.Рек1 в ВыбРек1)
А выбрек1 и будет параметр отбора |
|||
46
Coldboy
20.03.15
✎
15:18
|
(45) как все просто
|
|||
47
Spyke
20.03.15
✎
15:23
|
(46) Раньше с 7/7 не работал?
|
|||
48
Злопчинский
20.03.15
✎
15:25
|
||||
49
Злопчинский
20.03.15
✎
15:27
|
||||
50
Злопчинский
20.03.15
✎
15:27
|
можно еще быстрее - если вбабахать параметризированный запрос (типа так называется?)
|
|||
51
Spyke
20.03.15
✎
15:33
|
(46) Но все же для хранения цен лучшая реалиция в ТиС как в (27)
|
|||
52
Coldboy
20.03.15
✎
15:49
|
(51) нет не работал. не спорю лучшая, но мне не нужен сильно сложный механизм в моих то сроках. А как мне, если вам не сложно, данные этого запрос получить и обойти ?
Пока Запрос.Выполнить(ТекстЗапроса)=1 Цикл а дальше? КонецЦикла; |
|||
53
Coldboy
20.03.15
✎
16:01
|
Номенклатура1 = Наименование;
ТипЦен1 = Точка.ТипЦен; Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ПолучитьЦену) |Элемент = Справочник.Цены.ТекущийЭлемент; |Группировка Элемент без упорядочивания без групп; |Условие(Элемент.Номенклатура = Номенклатура1); |Условие(Элемент.ТипЦен = ТипЦен1); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей Элемент Сообщить(Элемент); КонецЦикла; |
|||
54
Coldboy
20.03.15
✎
16:01
|
Вот что накидал, не получается элемент увидеть.
|
|||
55
Coldboy
20.03.15
✎
16:02
|
ругается ошибки дает.
|
|||
56
Spyke
20.03.15
✎
16:03
|
Пока Запрос.Группировка(1) = 1 Цикл
замени Пока Запрос.Группировка() = 1 Цикл |
|||
57
Spyke
20.03.15
✎
16:04
|
Номенклатура1 = Наименование
наименование - это ссылка на элемент спр номенклатура? |
|||
58
Lazy Stranger
20.03.15
✎
16:05
|
скопировать из ТиС 2 справочника и 2 функции глобального модуля можно было минут за 10, а тема уже почти весь день обсуждается :)
|
|||
59
Coldboy
20.03.15
✎
16:06
|
(57) тип ссылки.
|
|||
60
Coldboy
20.03.15
✎
16:07
|
Пока Запрос.Группировка() = 1 Цикл
// Заполнение полей Элемент Сообщить(Элемент.Цена); КонецЦикла; На элемент ругается типа нет такого. Да наименование |
|||
61
Spyke
20.03.15
✎
16:10
|
А цена у тепя переодический реквизит?
|
|||
62
Spyke
20.03.15
✎
16:10
|
Если да то так не пойдет
|
|||
63
Coldboy
20.03.15
✎
16:11
|
(62) не переодический, просто реквизит типа число.
|
|||
64
Builder
20.03.15
✎
16:14
|
Ну вы блин даете....
Сообщить(Запрос.Элемент); |
|||
65
Spyke
20.03.15
✎
16:17
|
(64) Проглядел
|
|||
66
Coldboy
20.03.15
✎
16:20
|
(64) да я так и сделал, но проблема, в том что он выдает еще пустой элемент в конце, почему так?
|
|||
67
Coldboy
20.03.15
✎
16:21
|
выборка происходит двух элементов, нужный мне и потом за ним пустой, как это исправить ?
|
|||
68
Coldboy
20.03.15
✎
16:24
|
Номенклатура1 = Наименование;
ТипЦен1 = Точка.ТипЦен; Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ПолучитьЦену) |Элемент = Справочник.Цены.ТекущийЭлемент; |Группировка Элемент без упорядочивания без групп; |Условие(Элемент.Номенклатура = Номенклатура1); |Условие(Элемент.ТипЦен = ТипЦен1); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда // Сообщить("пусто"); Возврат; КонецЕсли; Пока Запрос.Группировка() = 1 Цикл // Заполнение полей Элемент Если Запрос.Элемент = получитьпустоезначение("справочник.Цены") Тогда // Сообщить("Пустой"); Продолжить; КонецЕсли; // Сообщить(Запрос.Элемент.Цена); Цена = Запрос.Элемент.Цена; КонецЦикла; |
|||
69
Coldboy
20.03.15
✎
16:25
|
вот в принципе.
хотя как добавить, чтобы помеченные на удаление не брать? |
|||
70
Spyke
20.03.15
✎
16:32
|
ПометкаУдаления()
Синтаксис: ПометкаУдаления() Назначение: Прочитать флаг пометки удаления элемента справочника. Возвращает: 1 - если на элементе справочника стоит пометка удаления; 0 - иначе. Замечание: Метод можно использовать только для объектов, созданных функцией СоздатьОбъект. |
|||
71
Builder
20.03.15
✎
16:42
|
Откройте для себя СП, полезная вещь...
В запрос добавить: |Обрабатывать НеПомеченныеНаУдаление; "без упорядочивания" - можно убрать. |
|||
72
Spyke
20.03.15
✎
16:46
|
(71) Смотря что не помеченное на удаление ему нужно если элемент справочника цены то (71) взлетит, а если элемент справочника номенклатура то (70)
|
|||
73
Spyke
20.03.15
✎
16:47
|
Но ИМХО склоняюсь к второму
|
|||
74
Coldboy
20.03.15
✎
16:57
|
Дикое спасибо всем за помощь.
|
|||
75
VladZ
20.03.15
✎
21:05
|
Вот чудак человек... Я тебе дело предлагаю - а ты свое гнешь... Ну, дело хозяйское.
Если бы ты "стянул" структуру ТИСа - можно было "стянуть" другие обработки под эту структуру. Простой пример: вот попросят тебя прайс сделать по определенному типу цены - будешь свою обработку писать? Или скажут, что цены на одном складе должны быть привязаны к себестоимости, цены на другом - на 10 процентов больше себестоимости, а цены на третьем - на 6% больше, чем на втором. Опять будешь обработку писать? Дело хозяйское, дерзай. |
|||
76
Coldboy
20.03.15
✎
21:30
|
(75) спасибо, но такого не будет ))) Я надеюсь с 7.7 в скором времени этой соскочим ))
|
|||
77
Злопчинский
21.03.15
✎
02:43
|
(76) То есть ты думаешь что герыч пойдет легче марихуанны..? ;-)
|
|||
78
hhhh
21.03.15
✎
06:57
|
если самописка, то быстрее переписать под восьмерку. Раз ТС с 7.7 не дружит.
|
|||
79
VladZ
21.03.15
✎
08:07
|
(76) "Я надеюсь с 7.7 в скором времени этой соскочим ))" Хотели бы соскочить - давно бы уже соскочили.
|
|||
80
Мимохожий Однако
21.03.15
✎
08:17
|
(76)Быстрее вноси изменения. Когда база рухнет - переёдёте на восьмёрку.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |