Имя: Пароль:
1C
1С v8
Ввод на основании
0 tg30000
 
26.06.12
09:16
Есть документ требование накладная, на основании него вводится новый документ дописанный.
Как сделать так что бы повторно нельзя было ввести на основании этой требовании накладной документы.
Подскажите какие есть варианты?
1 Maxus43
 
26.06.12
09:19
например в новом доке в обработке заполнения сначала проверить есть ли такие же доки уже. если есть - отказ
2 Alex S D
 
26.06.12
09:19
в передоткрытием дока проверяй
3 Ненавижу 1С
 
гуру
26.06.12
09:20
(1) первый юзер вводитна основании и не записывает, второй тоже самое, потом оба записывают - конфуз
4 Maxus43
 
26.06.12
09:21
(3) це пример. свой в студию
5 tg30000
 
26.06.12
09:22
(3) так блин и получилось..
6 Ненавижу 1С
 
гуру
26.06.12
09:23
(4) проверять надо дважды - ОбработкаЗаполнения и ПередЗаписью (это только у новых)
7 Maxus43
 
26.06.12
09:23
(5) тогда перед записью нового дока проверяй. один запишет, другой не сможет
8 tg30000
 
26.06.12
09:25
ок!) Спасибо господа)
9 IamAlexy
 
26.06.12
09:26
10 Ненавижу 1С
 
гуру
26.06.12
09:27
(9) это релиз кривой, ненавижу
11 Maxus43
 
26.06.12
09:29
310 ставить будем, 317 в топку, ничо критичного для нас не исправили впринципе
12 tg30000
 
26.06.12
09:53
Посмотрите пожалуйста, что-то неправильно проверяет, но долго....
p.s : на основании требовании накладной могут быть введены 4 документа как проверить на основании данной накладной уже введен или нет, как я написал наверное неправильно...




Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    Реализация_вариант_41.Регистратор,
   |    Реализация_вариант_44.Регистратор КАК Регистратор1,
   |    Реализация_вариант_46.Регистратор КАК Регистратор2,
   |    Реализация_вариант_48.Регистратор КАК Регистратор3,
   |    Реализация_вариант_33.Регистратор КАК Регистратор4
   |ИЗ
   |    Документ.Реализация_вариант_41 КАК Реализация_вариант_41,
   |    Документ.Реализация_вариант_44 КАК Реализация_вариант_44,
   |    Документ.Реализация_вариант_46 КАК Реализация_вариант_46,
   |    Документ.Реализация_вариант_48 КАК Реализация_вариант_48,
   |    Документ.Реализация_вариант_33 КАК Реализация_вариант_33";
   
   Результат = Запрос.Выполнить();
   
   ВыборкаДетальныеЗаписи = Результат.Выбрать();

   //{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   //---
   Пока ВыборкаДетальныеЗаписи.Следующий() цикл
       Если ВыборкаДетальныеЗаписи.Регистратор=ДанныеЗаполнения ИЛИ ВыборкаДетальныеЗаписи.Регистратор1=ДанныеЗаполнения ИЛИ ВыборкаДетальныеЗаписи.Регистратор2=ДанныеЗаполнения ИЛИ ВыборкаДетальныеЗаписи.Регистратор3=ДанныеЗаполнения ИЛИ ВыборкаДетальныеЗаписи.Регистратор4=ДанныеЗаполнения тогда
           Сообщить("На основании данного документа уже введена счет-фактура!!! Закройте окно и выберите другой документ требование накладная ! ! !");
           Оповестить("Закрыть форму");
           Возврат;
       КонецЕсли;
   КонецЦикла;

   //---
   Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ТребованиеНакладная") Тогда
       // Заполнение шапки
       Организация = ДанныеЗаполнения.Организация;
       Регистратор = ДанныеЗаполнения.Ссылка;
   КонецЕсли;
   //}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
13 Ненавижу 1С
 
гуру
26.06.12
09:58
(12) жесть жестокая
14 tg30000
 
26.06.12
09:58
(12) как правильно сделать ?
15 Ненавижу 1С
 
гуру
26.06.12
09:59
(14) названия документов жестокие, а вообще нужен запрос-объединение с отборами уже в самом запросе
16 Ненавижу 1С
 
гуру
26.06.12
10:01
"ВЫБРАТЬ
   |    Реализация_вариант_41.Регистратор КАК Регистратор
   |ИЗ
   |    Документ.Реализация_вариант_41 КАК Реализация_вариант_41
   |    ГДЕ Реализация_вариант_41.Регистратор=&Параметр
   |ОБЪЕДИНИТЬ ВСЕ
   |ВЫБРАТЬ
   |    Реализация_вариант_44.Регистратор КАК Регистратор
   |ИЗ
   |    Документ.Реализация_вариант_44 КАК Реализация_вариант_44
   |    ГДЕ Реализация_вариант_44.Регистратор=&Параметр
   |ОБЪЕДИНИТЬ ВСЕ // и так далее   ";
17 tg30000
 
26.06.12
10:02
(16) Благодарю!
Буду пробовать.
Ну а в целом правильно делаю?
18 pumbaEO
 
26.06.12
10:04
(17) В целом?
Документ.Реализация_вариант_44
Документ.Реализация_вариант_45
Документ.Реализация_вариант_46
Документ.Реализация_вариант_47
...
Документ.Реализация_вариант_100
Документ.Реализация_вариант_101
Документ.Реализация_вариант_102
...
Документ.Реализация_вариант_1+n
где n = бесконечность


НЕТ
19 Ненавижу 1С
 
гуру
26.06.12
10:05
(17) странная архитектура
20 tg30000
 
26.06.12
10:08
там такая ситуация что нужно на основании Т/Н вводить другие документы 5 вариантов.
И соответственно пользователь может если не делать проверку на основании одной т/н
ввести скажем 3 одинаковых документов и т.д.
Как правильно сделать проверку тогда?
21 tg30000
 
26.06.12
10:15
ап.
22 tg30000
 
26.06.12
11:38
апп..
23 tg30000
 
26.06.12
12:54
Сделал разными запросами, все работает. Раз в 100 быстрее работать стало.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший