Имя: Пароль:
1C
 
Проверить на актуальность
0 myr4ik07
 
05.09.14
21:16
Привет. Помогите, а лучше объясните будьте добры. Есть документ в котором вводятся номера заявок. В качестве сохранения данных номер заявки регистрирует Регистр сведений в качестве Измерения.
Номер заявки — это Справочник.
Хочу, чтобы в Документе можно было выбрать только тот Номер заявки, что еще не использовался.
Так как сохранение Номеров заявок у меня в регистре то в документе создал запрос
Массив = Новый Массив;
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    НомерЗаказа.НомераЗаявок
    |ИЗ
    |    РегистрСведений.НомерЗаказа КАК НомерЗаказа";
    Запрос.УстановитьПараметр("НомераЗаявок", Объект.НомерЗаявки);
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Массив.Добавить(ВыборкаДетальныеЗаписи);
    КонецЦикла;
Решил я с запроса брать все номера и сложить в массив, а дальше я здесь потому как не могу додумать дальнейшие действия…
Я на правильном пути?
1 Naumov
 
05.09.14
21:35
Это на каком языке написано?
2 mehfk
 
05.09.14
21:36
Нет.

Идея - бред.
Код - мусор.

Автору:
Мусор. Метла. Мести.
Навоз. Вилы. Кидать.
...
...

Когда надоест
1С. ЖКК. Читать.
Код. Типовые конфигурации. Вникать.
3 myr4ik07
 
05.09.14
21:51
так изложи свою идею(2)
4 myr4ik07
 
05.09.14
21:52
блесни стариной коль не нравится (1)
5 КонецЦикла
 
05.09.14
22:01
Выбирать максимальный номер (тогда возможны пропуски)
Запоминать дополнительно залоченные, но так и не записанные номера
Но нафига это надо, вот вопрос... 1с и так в кишках это делает
6 КонецЦикла
 
05.09.14
22:01
В самом простом случае вообще никакого регистра не нужно...
7 Zhuravlik
 
05.09.14
22:04
(0) "Номер заявки — это Справочник. " - зачем?
8 mehfk
 
05.09.14
22:06
(3) Моя идея в том, что бери метлу и или вилы и до прозрения.
9 myr4ik07
 
05.09.14
22:06
решил сохранять все номера в справочнике, в форме справочника использую встроенный генератор случайных чисел, а зачем? Не знаю, что порекомендуете вы? (7)
10 КонецЦикла
 
05.09.14
22:08
(9) >>а зачем? Не знаю

-Патрик, что ты здесь делаешь?
-Копаю!
-Зачем ты надел кепку?
-Не знаю!

(цы)
11 myr4ik07
 
05.09.14
22:09
ну как в "кишках" если я выбираю такой же номер заявки и провожу документ то это без проблем делается и для разных документов присвоил один и тот же номер заявки, что не допустимо в моем случаи.
Кстати, вы наверное имеете ввиду Номер документа, что мол не запишется два одинаковых номера то это да, но я о другом  (6)
12 myr4ik07
 
05.09.14
22:09
оставь при себе свои мнения (8)
13 myr4ik07
 
05.09.14
22:10
и?(10)
14 myr4ik07
 
05.09.14
22:15
Не хочу глядеть на номер документа, а хочу свой создавать и проверять на уникальность
15 mehfk
 
05.09.14
22:16
Давай начнем с запроса. Зачем-то же ты придумал этот параметр?

Запрос.Текст =
    "ВЫБРАТЬ
    |    НомерЗаказа.НомераЗаявок
    |ИЗ
    |    РегистрСведений.НомерЗаказа КАК НомерЗаказа";
    Запрос.УстановитьПараметр("НомераЗаявок", Объект.НомерЗаявки);

Где у тебя в запросе используется параметр "НомераЗаявок" ?
16 Zhuravlik
 
05.09.14
22:17
(9)"встроенный генератор случайных чисел" - номера не счетчиком генерятся? Вот это зря.
Не понял контекста задачи, услышал вот это: в табличной части документа вбиваются номера, хранящиеся в программе (зачем-то) в виде справочника, и одновременно в регистре сведений. Генерятся они случайным образом, поэтому возможны задвоения.
Необходимо оформить подбор в новую строку табличной части таким образом, чтобы использовать только новые (не заюзанные ранее в других документах, или текущем) номера.
Я все правильно понял?
17 myr4ik07
 
05.09.14
22:27
что имеется ввиду "номера не счетчиком генеряться!? - я использую ГенераторСлучайныхЧисел

у меня нет табличной части, все данные вводятся в реквизиты документа, ТЧ нет.
Да, номера генерирует форма справочника при нажатии на кнопку
да у меня созданный номера хранятся и в справочнике и регистре :)
ГенераторСлучайныхЧисел я не в курсе может ли в данном случаи повторяться числа
Да при выборе со справочника со списком номеров документ должен проверять указан ли где то уже этот выбранный номер  (16)
18 Zhuravlik
 
05.09.14
22:28
(0) Короче, если номер заявки - это номер документа, то лучше отказаться от самостоятельной генерации, поставить галку уникальности в конфигураторе, и жить с этим. От справочника отказаться, если хочется умный подбор - решать с помощью регистра сведений с измерениями типа "Заявка" (номер или документ, лучше документ) и "Занята" (булево). При проведении документа, в который идет подбор делать записи в этот регистр, анализировать их же при подборе, используя "Объединить" с результатом запроса по текущей табл. части.
19 myr4ik07
 
05.09.14
22:28
тут мне не чего ответить, почему то без установки параметра не работало так как надо(15)
20 Zhuravlik
 
05.09.14
22:30
(17) "что имеется ввиду "номера не счетчиком генеряться!?" - имеется в виду последовательно, прибавляя 1 создавать новый номер. Вот так: 1,2,3,4,5...
"я использую ГенераторСлучайныхЧисел"  - очень зря.
"ГенераторСлучайныхЧисел я не в курсе может ли в данном случаи повторяться числа " - может.
21 myr4ik07
 
05.09.14
22:30
так что то я до меня дошло, что наверное точно проще использовать Номер = НомерДокумента(18)
22 myr4ik07
 
05.09.14
22:31
хм, буду знать, чего и не думал что может повторяться (20)
23 myr4ik07
 
05.09.14
22:32
спасибо за советы, сяду переделывать ... (20)
24 КонецЦикла
 
05.09.14
23:03
(22) Даже если бы он не повторялся, было бы проще (21)
Задача туманна, это навскидку...
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший