Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
15 Июн 2021, 00:09
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
МультиВход
 
collapse

Автор Тема: Уникальность комбинации значений в реквизитах при добавлении?..  (Прочитано 2332 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kolllak

  • *
  • Регистрация: 2016-12-02
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Профессия: Ученик 1С
Пытаюсь разобраться с проверкой значений на уникальность. Данному вопросу посвящено множество постов, но в основном они касаются части когда и как проводить проверку (дабы избежать дублей при многопользовательской работе) и вопросам излишней нагрузки.

у меня вопрос к гуру о следующем: Можно ли проверить уникальность комбинации нескольких реквизитов?
Т.Е. если у позиции есть реквизиты: Номер (цифры) и Клеймо (цифры+буквы), нумерация идет в рамках клейма. Как их объединить и проверять именно оба значения в комплексе?

пока вижу два решения:
- создать третий реквизит и его значение сделать равным сумме первых двух, после чего проводить его проверку на уникальность (ну и хранить его для каждой позиции номенклатуры в отдельном регистре/справочнике)
- пока описывал второй, понял что он не имеет права жить(..


Оффлайн SGIRG

  • ***
  • Регистрация: 2014-03-26
  • Сообщений: 114
  • РЕПУТАЦИЯ: 33
  • КПД: 29%
создать третий реквизит и его значение сделать равным сумме первых двух, после чего проводить его проверку на уникальность (ну и хранить его для каждой позиции номенклатуры в отдельном регистре/справочнике)
Ну если отталкиваться от написанного выше, то у номенклатуры есть уникальный реквизит "Код" пишите в него сумму двух реквизитов.
Нажимайте "Спасибо", так приятнее))

Оффлайн kolllak

  • *
  • Регистрация: 2016-12-02
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Профессия: Ученик 1С
пришел к такому же выводу) спасибо, а можно посмотреть пример реализации в коде? или может есть какая литература с примерами?
задача срочная, а я в процессе обучения до этого еще не дошел(

Оффлайн SGIRG

  • ***
  • Регистрация: 2014-03-26
  • Сообщений: 114
  • РЕПУТАЦИЯ: 33
  • КПД: 29%
Ну во-первых скорее всего необходимо будет увеличить длину кода (если не ошибаюсь, то максимальное значение 50)
Далее необходимо в событие ПередЗаписью (как пример) добавить часть кода отвечающую за формирование уникального значения, что-то вроде Код = Номер+Клеймо
Ну это если очень загрубить.
Можно эту часть кода вывести в подписку на события.
+ Надо понимать, что реквизиты Номер и Клеймо должны всегда иметь одинаковое количество символов, либо их нужно будет дозаполнять пробелами. Это необходимо для исключения подобных ситуаций:
Номер = 123; Клеймо = 45Ф => Код = 12345Ф
Номер = 1234; Клеймо = 5Ф => Код = 12345Ф
в данном примере уникальный код перестает быть уникальным.
+ Проверка на непустые значения в этих реквизитах.
Нажимайте "Спасибо", так приятнее))

Оффлайн alex0402

  • *****
  • Регистрация: 2010-09-10
  • Сообщений: 2000
  • РЕПУТАЦИЯ: 358
  • КПД: 18%
  • Профессия: Программист 1С
Я бы использовал .НайтиСтроки(Новый Структура("Реквизит1,Реквизит2",Значение1,Значение2). для каждой строки.

или запросом

 Выбрать Реквизит1,Реквизит2 ПОМЕСТИТЬ ВТ ИЗ &ТЗ;
ВЫБРАТЬ Реквизит1,Реквизит2,Сумма(1) ИЗ ВТ СГРУППИРОВАТЬ ПО Реквизит1,Реквизит2
ИМЕЮЩИЕ Сумма(1) > 1
Спасибо за Сказать спасибо

Оффлайн kolllak

  • *
  • Регистрация: 2016-12-02
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Профессия: Ученик 1С
Ну во-первых скорее всего необходимо будет увеличить длину кода (если не ошибаюсь, то максимальное значение 50)
Далее необходимо в событие ПередЗаписью (как пример) добавить часть кода отвечающую за формирование уникального значения, что-то вроде Код = Номер+Клеймо
Ну это если очень загрубить.
Можно эту часть кода вывести в подписку на события.
+ Надо понимать, что реквизиты Номер и Клеймо должны всегда иметь одинаковое количество символов, либо их нужно будет дозаполнять пробелами. Это необходимо для исключения подобных ситуаций:
Номер = 123; Клеймо = 45Ф => Код = 12345Ф
Номер = 1234; Клеймо = 5Ф => Код = 12345Ф
в данном примере уникальный код перестает быть уникальным.
+ Проверка на непустые значения в этих реквизитах.

а если пойти по этому пути но в код писать так:
Номер = 123; Клеймо = 45Ф => Код = НОМЕР123КОД45Ф
Номер = 1234; Клеймо = 5Ф => Код = НОМЕР1234КОД5Ф
??

второй вариант я точно пока не смогу реализовать(

Оффлайн SGIRG

  • ***
  • Регистрация: 2014-03-26
  • Сообщений: 114
  • РЕПУТАЦИЯ: 33
  • КПД: 29%
Ну, если Вам хватит длины кода справочника, то можете сделать и так, ну либо просто "Н" и "К"
Нажимайте "Спасибо", так приятнее))


Теги:
 

Запрет изменения размеров формы/ее "распахивания" при управляемых формах ?

Автор oooo800Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 237
Последний ответ 18 Сен 2020, 01:54
от oooo800
Созданный БП не видно при создании шаблонов бизнес процессов

Автор outsupРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 108
Последний ответ 13 Ноя 2020, 09:18
от outsup
Можно ли изменить единицу измерения при распределении затрат?

Автор squall84Раздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 324
Последний ответ 29 Ноя 2019, 10:59
от squall84
конф.1С:УПП списание общехозяйственных расходов при расчете себестоимости

Автор alnairРаздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 441
Последний ответ 21 Фев 2020, 09:34
от alnair
Уведомление пользователей при изменении статуса документа

Автор isacnew21Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 11
Просмотров: 2663
Последний ответ 01 Апр 2019, 12:32
от isacnew21

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Последние вакансии

* Том 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
65 Сообщений
LexaK
62 Сообщений
antoneus antoneus
31 Сообщений
Ивашка
26 Сообщений
neek666
23 Сообщений
KATERINA 861
19 Сообщений
SSC
15 Сообщений
alexandr_ll
13 Сообщений
Алексей_1985_06
11 Сообщений
BuhRust
8 Сообщений

* Кто онлайн

  • Точка Гостей: 144
  • Точка Скрытых: 0
  • Точка Пользователей: 3
  • Точка Сейчас на форуме:

* Облако тэгов

* Инструменты

* Дополнительно

Поиск