Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> На основании документа создать элемент справочника          
alexk Подменю пользователя
сообщение 11.04.13, 12:04
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 0 раз
Рейтинг: 0

Здравствуйте, подскажите как с помощью документа создать элемент справочника, то есть допустим в документе есть схожие реквизиты с реквизитами справочника. И при проведении этого документе создавался элемент справочника, соответственно с заполненными полями?

pablo Подменю пользователя
сообщение 11.04.13, 12:06
Сообщение #2

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

А что будет происходить при отмене проведения документа? А при перепроведении? Да и зачем создавать справочник - дубликат документа?


Signature
Правильно поставленный вопрос содержит до 90% ответа.

alexk Подменю пользователя
сообщение 11.04.13, 12:10
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 0 раз
Рейтинг: 0

Дело в том, что документ заполняет обычный пользователь, он имеет право только сохранять документ. А администратор уже проверяет данный документ, и уже сам решает проводить его или нет, соответственно вся ответственность на админе лежит

Vofka Подменю пользователя
сообщение 11.04.13, 12:13
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13957
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

В документе сделать кнопку и создавать только по нажатию кнопки.

alexk Подменю пользователя
сообщение 11.04.13, 12:15
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 0 раз
Рейтинг: 0

А, если вам не сложно, можете написать пример кода?

Vofka Подменю пользователя
сообщение 11.04.13, 12:23
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13957
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Справочник = Справочники.МойСправочник.СоздатьОбъект();
Справочник.Реквизит1 = "Вася";
Справочник.Записать();

Выполнять в серверной процедуре.

Спасибо сказали: alexk,

alexk Подменю пользователя
сообщение 11.04.13, 12:25
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 0 раз
Рейтинг: 0

Если допустим у меня есть реквизит Фамилия и там, и там, то можно сделать так?
 новыйЭлемент= Справочники.Учащиеся.СоздатьЭлемент();
НовыйЭлемент.Фамилия=Фамилия;
новыйЭлемент.Записать();

Vofka Подменю пользователя
сообщение 11.04.13, 12:30
Сообщение #8

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13957
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Т.к. ветка находится в разделе "Управляемый интерфейс", то предположу, что вот так:
НовыйЭлемент= Справочники.Учащиеся.СоздатьЭлемент();
НовыйЭлемент.Фамилия = Объект.Фамилия;
новыйЭлемент.Записать();

alexk Подменю пользователя
сообщение 11.04.13, 12:33
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 0 раз
Рейтинг: 0

А он же вроде не сможет выполнить её НаСервере, там же Объект.Фамилия, не найдет...?

Vofka Подменю пользователя
сообщение 11.04.13, 12:36
Сообщение #10

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13957
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

А может вы бы сначала пробовали, а потом писали?

logist Подменю пользователя
сообщение 11.04.13, 12:39
Сообщение #11

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Vofka @ 11.04.13, 12:36) *
А может вы бы сначала пробовали, а потом писали?

Судя из стартового вопроса - процедура выполняется в модуле объекта, там как раз без Объекта, просто Фамилия.

upd: и если реквизиты по названиям одинаковы, то можно использовать ЗаполнитьЗначенияСвойств()


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 11.04.13, 12:41
Сообщение #12

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13957
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Цитата(logist @ 11.04.13, 13:39) *
Судя из стартового вопроса - процедура выполняется в модуле объекта, там как раз без Объекта, просто Фамилия.

Я ж выше писал
Цитата(Vofka @ 11.04.13, 13:13) *
В документе сделать кнопку и создавать только по нажатию кнопки.

т.к. считаю так же как и pablo: создавать при проведении не надо. Ну и я, конечно, не написал, но думал, что это само собой всем понятно: раз по кнопке на форме, то код будет тоже выполняться в форме.

logist Подменю пользователя
сообщение 11.04.13, 12:44
Сообщение #13

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Vofka @ 11.04.13, 12:41) *
т.к. считаю так же как и pablo: создавать при проведении не надо. Ну и я, конечно, не написал, но думал, что это само собой всем понятно: раз по кнопке на форме, то код будет тоже выполняться в форме.

И при проведении и по кнопке в форме - идея утопична, поскольку можно создавать сколько угодно. Соответственно офф-топ в теме будет smile.gif


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 11.04.13, 13:01
Сообщение #14

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13957
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Цитата(logist @ 11.04.13, 13:44) *
И при проведении и по кнопке в форме - идея утопична, поскольку можно создавать сколько угодно.

"По кнопке", как минимум, избавляет от проблем перепроведения и отмены проведения. А остальное - это уже на совести ТС. bk.gif

alexk Подменю пользователя
сообщение 11.04.13, 13:22
Сообщение #15

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 0 раз
Рейтинг: 0

Скажите, а если я делаю по кнопке, то как мне Сделать с помощью ЗаполнитьЗначенияСвойств

        НовыйЭлемент= Справочники.Учащиеся.СоздатьЭлемент();
    ЗаполнитьЗначенияСвойств(новыйЭлемент,ЭтотОбъект);
    НовыйЭлемент.Записать();


"ЭтотОбъект", пишет Переменная не определена. Кнопка находится же в модуле формы, может как-то можно заменить?

Vofka Подменю пользователя
сообщение 11.04.13, 13:28
Сообщение #16

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13957
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Ну а подумать? Пост №8 не на какие мысли не наводит?

zay Подменю пользователя
сообщение 12.04.13, 10:33
Сообщение #17

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 164
Из: Киев
Спасибо сказали: 132 раз
Рейтинг: 138.1

Alexk, у вас в принципе не правильное направление идеи. Это как открывать замок, одевая замок на ключ и поворачивая замок. У вас так даже вроде получится "открыть" его, но потом может оказаться что в нагрузку к замку идет дверь...

Смотрите, у вас есть набор реквизитов, которые вы говорите есть и в документе и в справочнике. На самом деле такого быть не должно. (В теории баз данных это называется "вторая нормальная форма"). Если у вас будут дубли реквизитов "Фамилия" в документе и в справочнике - то на 1000 курсантов у вас будут 2-3 курсанта у которых в документе и в справочнике будут разные фамилии. И дальше бы будете бороться с этими артефактами. Если правильно спроектировать хранение данных - таких проблем просто не возникнет.

Как бы я это делал. Создал обработку с кучей полей ввода (например "Фамилия"). И одной кнопкой "Записать". По нажатию кнопки:
1. Проверяется заполнение обязательных реквизитов.
2. Проверяется, а нет ли уже такого курсанта в базе (например по ИНН или паре ФИО+дата рождения )
3. Если такого курсанта нет - создаем новую запись в справочнике, если есть - используем существующую
4. Создаем новый документ. В документе есть только ссылка на элемент справочника (курсанта). Никаких "фамилий", "дат рождения" и прочих реквизитов, таких же как в справочнике, в нем быть не должно.
5. Выполняются какие-то действия с документом, для которых он нужен. Например печать.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 04.06.24, 13:08
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!