• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

1c: Предприятие 8.2

  • Автор темы mashutka89
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

mashutka89

Здравствуйте уважаемые программисты! Очень прошу помочь! Я новичок в программировании на 1С и поэтому не могу исправить несложную ошибку.
Постараюсь кратко описать суть проблемы...
Есть документ "Подписка" реквизитами которого являются Подписчик, ВидПодписки и т.д. Этот документ проходит через регистр сведений "Подписка".
При запуске я создаю первый документ "Подписка", заполняю поля Подписчик(типа СправочникСсылка.Контрагенты), ВидПодписки и т.д, провожу документ,на этом этапе все хорошо... Но когда я пытаюсь создать новый документ и в поле Подписчик ввести такую же фамилию как и в уже существующем документе, провести этот новый документ не получается, выдается ошибка: "Запись с такими ключевыми полями уже существует! Регистр сведений: подписка; Номер строки: 2".
Вот...
Основной вопрос заключается как сделать реквизит Подписчик не ключевым?
Заранее спасибо за ответы.
 
K

KiR

Разве же это ошибка? по моему вполне верная логика у конфигурации.
сделать реквизит не ключевым в принципе можно, но не думаю что в рамках данной конфигурации это будет правильно.
вот смотри - поле поле Подписчик это элемент справочника Контрагенты. соотвественно глупо выбирать одного и того же самого контрагента

P.S. а, кстати, что собственно за конфигурация? самописка или что-то типовое?
 
V

vitfil

M

mashutka89

Конфигурация самописная "ПодсистемаИТС". Логика у конфигурации конечно есть, должна быть уникальность. Но в данном случае лучше бы сделать ключевым другое поле или их совокупность, пробовала добавить реквизит Номер в регистр сведений "Подписка", чтобы в него заносился номер документа и по нему осуществлялась уникальность, но ничего не вышло... Смысл в том что может быть несколько документов "Подписка" в которых фигурирует один и тот же заказчик(контрагент), т.е человек у которого заканчивается подписка должен иметь возможность ее продлить или человек может захотеть оформить подписку на несколько дисков, а из-за этого недочета ничего не получится.
А предположила я, что ошибка несложная, т.к имею опыт программирования на других языках, просто именно в 1С начала работать недавно и пока плохо ориентируюсь. Ну может конечно ошибка и сложная, извините уж если не права)
 
K

KiR

тут я вижу два варианта:
1. попроще. все подписки оформлять одним документом на одного человека. т.е. человек делает первую подписку - содается документ, человек хочет что-то еще, изменяется документ. Данный подход самый простой, но не факт что самый правильный ибо конфы такой не видал и соответсвенно логики ее работы не знаю.
2. сделать копию базы и тренироваться с регистром до тех пор, пока не получится Желаемый Результат. Его бы неплохо и сюда написать (ЖР) для того чтобы в случае ошибок или каких-то неверных действий форумовщики могли подсказивать что-то конкретное, а не тыкать пальцем в небо.

Если же что-то походу не будет получатся (представляя себе целеком ЖР) - писать сюда шаги выполнения и ошибки. Удачи!

P.S. какие еще есть реквизиты в документе и регистре сведений?
 
M

mashutka89

Спасибо, воспользовалась вашим вторым советом. Получилось сама не понимаю как, методом научного тыка)))
Оказывается ключевые поля - это измерения в регистре сведений, а если регистр периодический, то ключевыми полями являются период и измерения. Вычитала в книжке уже после того как все заработало)
 
K

KiR

mashutka89, поздравляю! самое главное что и получилось добится желаемого результата, да еще и техническу базу подтянула! браво! :facepalm: ;)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!