Создание периодических реквизитов программно
Всем привет.
Помогите пожалуйста со следующей задачей.
Есть справочник "Сотрудники", где существует периодический реквизит ФизЛицо=Справочник.ФизЛица, а есть обычный - Должность=Справочник.Должности.
Так вот, необходимо поменять их периодичность местами, т.е. Должность должна быть ПР, а ФизЛицо - обычным. Загвоздка в том, что нужно оставить привязку к документу, а обычным методом этого не сделать.
Есть какие-нибудь трюки, позволяющие это сделать?
Помогите пожалуйста со следующей задачей.
Есть справочник "Сотрудники", где существует периодический реквизит ФизЛицо=Справочник.ФизЛица, а есть обычный - Должность=Справочник.Должности.
Так вот, необходимо поменять их периодичность местами, т.е. Должность должна быть ПР, а ФизЛицо - обычным. Загвоздка в том, что нужно оставить привязку к документу, а обычным методом этого не сделать.
Есть какие-нибудь трюки, позволяющие это сделать?
По теме из базы знаний
- Программное создание элемента справочника
- Инфостарт. Восьмерка. Лучшее
- Загрузка номенклатуры в УТ11, КА 2, ERP 2, Розница 2 из Excel. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки
- Разработка и сценарное тестирование с Vanessa-ADD. Концепция, теория и сквозной пример создания сценария
- Чек-листы для проведения Code Review
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Периодическое физлицо у Сотрудника - это я вам скажу! ;) Кто ж додумался? Сотрудник Иванов позавчера физлицом Петровым был?
Ну а сделать (если это и правда так было) надо примерно так:
Сделать сначала периодику на должность, перенести на нее периодику с физлица, а потом уж убить периодику последнего.
Но ваще - я чуть в осадок не выпал...
Ну а сделать (если это и правда так было) надо примерно так:
Сделать сначала периодику на должность, перенести на нее периодику с физлица, а потом уж убить периодику последнего.
Но ваще - я чуть в осадок не выпал...
(6) Да ладно, Abadonna, я сам с себя фигею!
Но по сути:
Этот метод имеет существенный недостаток - при переносе периодики не сохраняется привязка к документу (см. 1), а это оч. важно. Есть ли методы записи периодических реквизитов с привязкой к документу без проведения оного? Ну, типа:
История = СоздатьОбъект("Периодический");
История.ИспользоватьОбъект("Должность",Сотрудник);
История.Новый();
История.Значение = Сотрудник.Должность;
История.ДатаЗнач = Документы.ДатаДок;
История.ТекущийДокумент() = Документы.ТекущийДокумент();
История.Записать();
Но по сути:
Этот метод имеет существенный недостаток - при переносе периодики не сохраняется привязка к документу (см. 1), а это оч. важно. Есть ли методы записи периодических реквизитов с привязкой к документу без проведения оного? Ну, типа:
История = СоздатьОбъект("Периодический");
История.ИспользоватьОбъект("Должность",Сотрудник);
История.Новый();
История.Значение = Сотрудник.Должность;
История.ДатаЗнач = Документы.ДатаДок;
История.ТекущийДокумент() = Документы.ТекущийДокумент();
История.Записать();
Я бы не искал "какие-нибудь трюки, позволяющие это сделать", а в начале разобрался бы "ЧТО ДЕЛАТЬ?". (ну или в крайнем случае "КТО ВИНОВАТ?")
Если вообще отбросить периодику, как ты вообще думаешь засунуть элемент справочника физлица в реквизит с типом "Справочник.Должности"? (см.свой 3)
Если вообще отбросить периодику, как ты вообще думаешь засунуть элемент справочника физлица в реквизит с типом "Справочник.Должности"? (см.свой 3)
(13)
vovan519,
Виноват я, поэтому и спрашиваю - что делать.
Насчет типа значения это я упрощенно, не проблема сделать оба реквизита справочником неопределенного вида.
Фактически было так:
Элемент = Директор
01.01.2008 | Прием на работу №1 | Иванов И.И.
01.06.2008 | Приказ по отпуску | <...>
29.06.2008 | Приказ по отпуску | Иванов И.И.
01.11.2008 | Кадровое перемещение | <...>
А нужно так:
Элемент = Иванов И.И.
01.01.2008 | Прием на работу №1 | Директор | Основное место работы
01.06.2008 | Приказ по отпуску |
29.06.2008 | Приказ по отпуску |
01.11.2008 | Кадровое перемещение | Зам. директора
Т.е. было, что определяла элемент должность, а нужно -чтобы физлицо.
vovan519,
Виноват я, поэтому и спрашиваю - что делать.
Насчет типа значения это я упрощенно, не проблема сделать оба реквизита справочником неопределенного вида.
Фактически было так:
Элемент = Директор
01.01.2008 | Прием на работу №1 | Иванов И.И.
01.06.2008 | Приказ по отпуску | <...>
29.06.2008 | Приказ по отпуску | Иванов И.И.
01.11.2008 | Кадровое перемещение | <...>
А нужно так:
Элемент = Иванов И.И.
01.01.2008 | Прием на работу №1 | Директор | Основное место работы
01.06.2008 | Приказ по отпуску |
29.06.2008 | Приказ по отпуску |
01.11.2008 | Кадровое перемещение | Зам. директора
Т.е. было, что определяла элемент должность, а нужно -чтобы физлицо.
Стандартный механизм ты знаешь. А не стандартный - Периодика в 1sconst, а в нем DOCID.
Только позволь дать тебе два совета и не обижайся.
1. в 1 речь идет об реквизитах одного справочника, а в примере 14 ты описываешь два разных элемента (Элемент = Директор, Элемент = Иванов И.И. ) разных справочников. Поэтому либо ты не поймешь задание, либо не можешь грамотно сформулировать мысли. (была тут одна статья про буквоедство). В обоих случаях у тебя каша в голове. Лично я в таком состоянии даже не подхожу к компьютеру. Мысли должны быть ясными и четкими. Алгоритм полностью должен быть в голове, а не фрагментами.
2. В модуле документа (документов) должно быть четко прописано какое периодическое значение нужно установить для конкретного реквизита конкретного справочника. Это единственно верное значение мы получаем из параметров (реквизитов) нашего документа. И это тебе все равно придется делать. Ведь даже если ты засунешь в справочник то, что тебе нужно, документ то могут и перепровести. А движения и периодика заполнятся в соответствии с модулем твоего документа. Ты же в модуле не напишешь "1с, посмотри пожалуйста, в старой базе был периодический реквизит физлица, который я переделал в непериодический, вот подставь сюда то самое значение". А если тебе все равно придется переделывать Модуль документа. Так переделай. А после этого тебе останется только перепровести документы.
Буду рад если мои советы тебе помогут.
Только позволь дать тебе два совета и не обижайся.
1. в 1 речь идет об реквизитах одного справочника, а в примере 14 ты описываешь два разных элемента (Элемент = Директор, Элемент = Иванов И.И. ) разных справочников. Поэтому либо ты не поймешь задание, либо не можешь грамотно сформулировать мысли. (была тут одна статья про буквоедство). В обоих случаях у тебя каша в голове. Лично я в таком состоянии даже не подхожу к компьютеру. Мысли должны быть ясными и четкими. Алгоритм полностью должен быть в голове, а не фрагментами.
2. В модуле документа (документов) должно быть четко прописано какое периодическое значение нужно установить для конкретного реквизита конкретного справочника. Это единственно верное значение мы получаем из параметров (реквизитов) нашего документа. И это тебе все равно придется делать. Ведь даже если ты засунешь в справочник то, что тебе нужно, документ то могут и перепровести. А движения и периодика заполнятся в соответствии с модулем твоего документа. Ты же в модуле не напишешь "1с, посмотри пожалуйста, в старой базе был периодический реквизит физлица, который я переделал в непериодический, вот подставь сюда то самое значение". А если тебе все равно придется переделывать Модуль документа. Так переделай. А после этого тебе останется только перепровести документы.
Буду рад если мои советы тебе помогут.
(17)
vovan519,
Нет, это один справочник. Но только наименование меняется на основании "основного реквизита". Раньше был основным должность, теперь будет физлицо.
Это полюбасу.
Спасибо за советы. Похоже путь мне на форум 1с++ :-D
vovan519,
vovan519 пишет:
в 1 речь идет об реквизитах одного справочника, а в примере 14 ты описываешь два разных элемента (Элемент = Директор, Элемент = Иванов И.И. ) разных справочников
в 1 речь идет об реквизитах одного справочника, а в примере 14 ты описываешь два разных элемента (Элемент = Директор, Элемент = Иванов И.И. ) разных справочников
Нет, это один справочник. Но только наименование меняется на основании "основного реквизита". Раньше был основным должность, теперь будет физлицо.
vovan519 пишет:
тебе все равно придется переделывать Модуль документа.
тебе все равно придется переделывать Модуль документа.
Это полюбасу.
Спасибо за советы. Похоже путь мне на форум 1с++ :-D
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот