Имя: Пароль:
1C
1C 7.7
v7: Автоматическое создание периодики.
0 Eeakie
 
20.10.14
12:35
Добрый день.
В справочнике есть один периодический реквизит. При создании нового элемента в историю заносится пустое значение этого реквизита. Это нормально? Что может быть не так?
1 vcv
 
20.10.14
12:47
Сохранением периодических реквизитов можно управлять

СохранениеПериодическихРеквизитов(<?>,);
Синтаксис:
СохранениеПериодическихРеквизитов(<ВариантВызова>,<Список>)
Назначение:
Установить режим отображения диалога сохранения периодических реквизитов при записи элемента справочника.
Параметры:
<ВариантВызова> - вариант вызова метода.  Число:
0 - отключить автоматический режим определения списка измененных реквизитов и показ диалога (параметр <Список> не используется);
1 - включить автоматический режим определения списка измененных реквизитов с показом диалога (параметр <Список> определяет набор анализируемых реквизитов);
2 - включить автоматический режим определения списка измененных реквизитов без показа диалога (параметр <Список> определяет набор анализируемых реквизитов);
3 - выполнить определение списка измененных реквизитов с показом диалога (параметр <Список> определяет набор анализируемых реквизитов);
4 - выполнить определение списка измененных реквизитов без показа диалога (параметр <Список> определяет набор анализируемых реквизитов);
5 - выдать/установить список сохраняемых периодических реквизитов. Метод возвращает установленный список периодических реквизитов, которые будут записываться на момент до вызова метода. Если параметр <Список> указан, то устанавливается список периодических реквизитов, которые должны быть записаны.
<Список> - необязательный параметр. Строковое выражение, в котором через запятую перечислены имена периодических реквизитов справочника. Если указан символ ''*'', то считается, что в список включены все периодические реквизиты справочника.
Возращает: строку, представляющую собой список разделенных запятыми идентификаторв периодических реквизитов:
для варианта 5 - список сохраняемых периодических ревизитов по состоянию на момент до вызова метода;
для вариантов 1...4 - список сохраняемых периодических ревизитов, изменение которых будет определяться (если такой список установлен при вызове метода).
Замечание:
Метод доступен только в контексте Модуля формы элемента справочника. Действие данного метода относится только к текущему элементу справочника, который доступен в локальном контексте Модуля формы элемента справочника.
2 palpetrovich
 
20.10.14
12:56
(0) нормально если значение реквизита не "0/1"
если не устраивает (1) - тупо присвой этому реквизиту "что надо" при ввооде нового
3 Eeakie
 
20.10.14
13:24
(1) Да, диалог можно вызвать, но в истории уже сохранено пустое значение. Вопрос в том, как вообще обрубить создание периодики при создании нового элемента справочника.
(2) Реквизит "Прих_цена" в справочнике "Товары". При создании вообще не надо ничего присваивать. История должна остаться девственно чиста.
4 Eeakie
 
20.10.14
13:41
UP.
Неужели никто не сталкивался?
5 Eeakie
 
20.10.14
13:42
Просто проверьте: создайте новый элемент справочника, не заполняя периодические реквизиты. Что в истории будет после создания?
6 Азазель
 
20.10.14
14:08
При создании элемента справочника цена устанавливается не платформой, а кодом конфигурации.
Проверь процедуры ВводНового, ПриОткрытии и ПриЗаписи.

Если цена хранится не в справочнике номенклатуры, а в отдельном справочнике цен- выполни аналогичную проверку для модуля формы этого спрачоника.

А еще лучше поступи так.
Установи для реквизита цены флажок "Изменяется документами" и сними флажок "Ручное изменение".
В этом случае пустое значение реквизита при создании элемента не будет записано, так как нет документа.
Не забудь написать сам команды авторегистрации цен при проведении приходных документов.
7 Eeakie
 
20.10.14
14:14
(6) Во всем модуле формы ни единого упоминания про этот реквизит.
ТиС, переписанный. Цена - просто периодический реквизит.
А вот за "Изменяется документами" спасибо. Совсем забыл.
Без снятия этого флага, похоже, ничего не добиться.

Благодарю.
8 Eeakie
 
20.10.14
14:15
*без снятия флага "Ручное изменение".
9 palpetrovich
 
20.10.14
14:20
(6) да ладно, при создании нового Товара, Прих_цена будет равной нулю! ...вообще без модуля
(3) а вот зачем это вообще "История должна остаться девственно чиста."?  ...на крайняк можно почистить
10 Eeakie
 
20.10.14
14:27
(9) Просто не понимаю зачем нужны пустые значения в истории. Избавляюсь от лишнего. А тут такое. Вот и думаю чистить автоматом, если это новый элемент. Снял бы галку "Ручное изменение", но снабжение, бывает, вручную изменяет.
11 palpetrovich
 
20.10.14
14:34
(10) думаю на эту "проблему" надо забить! :) ибо так устроем мир...
завел реквизит - как минимум в одной таблице конфигурации он появился, причем место занимает независимо от того, заполнен он или нет :)
12 Eeakie
 
20.10.14
14:41
(11) Хах, хороший совет ;)
13 palpetrovich
 
20.10.14
14:50
(12) если сильно хочется "девственной чистоты", нарисуй вмодуле формы элемента:

Процедура ПриЗакрытии()
    Если ЭтоНовый = 1 Тогда
        ОбъектПериодический = СоздатьОбъект("Периодический");
        ОбъектПериодический.ИспользоватьОбъект("Прих_цена", ТекущийЭлемент());  
        ОбъектПериодический.ВыбратьЗначения(,);
        Пока ОбъектПериодический.ПолучитьЗначение()=1 Цикл  
            ОбъектПериодический.Удалить();    
        КонецЦикла;
    КонецЕсли;    
КонецПроцедуры
14 Eeakie
 
20.10.14
15:25
(13) Так и хотел сделать. Спасибо ;)
15 palpetrovich
 
20.10.14
15:29
(14) не за что, поверь (11) лучше :)
16 Eeakie
 
20.10.14
15:35
(15) Поговорил с руководством. "Забили" ;)
17 Chameleon1980
 
21.10.14
00:44
(16) %)