Имя: Пароль:
1C
1C 7.7
v7: Запрет создания двойного документа
0 julia_rostov
 
03.08.12
08:43
Здравстивуйте всем!
Я снова с вопросом. На основании СЧЕТА создала документ СЛУЖЕБКА из этого документа получается документ Приходная. Но проблема в том что служебку можно создать дважды на один и тот же счет. Т.е должен быть запрет на создание одного документа дважды. Подскажите как это сделать. Если есть примеры не откажусь
1 KUBIK
 
03.08.12
08:45
(0) посмотри в типовых ТиС: СчетФактура на основании РасходнойНакладной
2 пипец
 
03.08.12
08:46
ВыбратьПодчиненныеДокументы(<?>,,)
3 julia_rostov
 
03.08.12
08:50
А можно примеры...
4 julia_rostov
 
03.08.12
08:58
Люди ну скиньте пример кода запрета создания двойного документа
5 KUBIK
 
03.08.12
08:58
// Проверим, чтобы не было дублирования СФ
   Сообщение    = "";
   Подчиненные    = СоздатьОбъект("Документ");
   Подчиненные.ВыбратьПодчиненныеДокументы(, , ДокументОснование.ТекущийДокумент());
   Пока Подчиненные.ПолучитьДокумент() = 1 Цикл
       // должен быть счет_фактурой
       Если Подчиненные.Вид() = "СчетФактураВыданный" Тогда
           // не помеченным на удаление
           Если Подчиненные.ПометкаУдаления() = 0 Тогда
               
               Сообщение    = "На основании документа " +
                             ДокументОснование.ПредставлениеВида() + " " + СокрП(ДокументОснование.НомерДок) + " от " + ДокументОснование.ДатаДок + " " +
                             "уже выписан документ " + ПредставлениеВида() + " " + СокрП(Подчиненные.НомерДок) + " от " + Подчиненные.ДатаДок + ". " +
                             "Нельзя выписывать другой!";
               Прервать;
               
           КонецЕсли;
           
       КонецЕсли;
       
   КонецЦикла;
6 KUBIK
 
03.08.12
09:00
Забыл еще кусок:


   Если ПустаяСтрока(Сообщение) = 0 Тогда
       // есть сообщение, значит есть дубль
       Предупреждение(Сообщение,60);
       СтатусВозврата(0);
       Возврат;
   КонецЕсли;
7 julia_rostov
 
03.08.12
09:01
Ок, спасибо, только вопрос еще При каком событии пишется процедура??? При Записи После Записи???
8 KUBIK
 
03.08.12
09:01
//////////////////////////////////////////////////////////////////////////////////
// ПРЕДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ
//                                                
//******************************************************************************
// Предопределенная процедура
//
Процедура ВводНаОсновании(ДокументОснование)
9 chief accountant
 
03.08.12
09:02
(7) ВводНаОсновании
10 julia_rostov
 
03.08.12
09:07
Подчиненные.ВыбратьПодчиненныеДокументы(, , ДокументОснование.ТекущийДокумент());
{Документ.СлужебнаяКорректировка.Форма.Модуль(17)}: Не выбран документ!

Вот такая ошибка.....((((((((
11 Guk
 
03.08.12
09:08
Юле ЖКК бы почитать для начала...
12 VladZ
 
03.08.12
09:09
(0) Продам СП. Дорого.
13 julia_rostov
 
03.08.12
09:10
Ну не шумите я только учусь, знаю итак что вопросы  глупые, ну не ругайтесь.
14 chief accountant
 
03.08.12
09:18
(13) фотку давай по-крупнее
15 KUBIK
 
03.08.12
09:18
(14) +1
16 ЧеловекДуши
 
03.08.12
09:19
А почему фото маленькое?
Миста поддерживает почти любой размер фото :)
17 julia_rostov
 
03.08.12
09:30
Фотку скину позже. может кто проверит

Процедура ВВодНаОсновании(Док)    
   
    ДокОснование = Док;

    Сообщение    = "";
   Подчиненные    = СоздатьОбъект("Документ");
   Подчиненные.ВыбратьПодчиненныеДокументы(, , ДокОснование.ТекущийДокумент());
   Пока Подчиненные.ПолучитьДокумент() = 1 Цикл
     

       Если Подчиненные.Вид() = "Счет" Тогда
           // не помеченным на удаление

           Если Подчиненные.ПометкаУдаления() = 0 Тогда
               
               Сообщение    = "На основании документа " +
                             ДокОснование.ПредставлениеВида() + " " + СокрП(ДокОснование.НомерДок) + " от " + ДокОснование.ДатаДок + " " +
                             "уже выписан документ " + ПредставлениеВида() + " " + СокрП(Подчиненные.НомерДок) + " от " + Подчиненные.ДатаДок + ". " +
                             "Нельзя выписывать другой!";
               Прервать;
               
           КонецЕсли;
           
       КонецЕсли;
       
   КонецЦикла;      
       
    Если ПустаяСтрока(Сообщение) = 0 Тогда
       // есть сообщение, значит есть дубль

       Предупреждение(Сообщение,60);
       СтатусВозврата(0);
       Возврат;
   КонецЕсли;
   Фирма = Док.Фирма;
   Менеджер = Док.Менеджер;
   Док.ВыбратьСтроки();
   Пока Док.ПолучитьСтроку() = 1 Цикл
       Если Док.Выбран() = 1 Тогда
           НоваяСтрока();  
           Номенклатура = Док.Товар;
           Количество=Док.Количество;
       КонецЕсли;    
   КонецЦикла;    

КонецПроцедуры
18 julia_rostov
 
03.08.12
09:31
ошибок не выдает
19 julia_rostov
 
03.08.12
09:32
Я честно скину. Сейчас мне разобраться надо, с работой))))
Подскажите где мои косяки
20 chief accountant
 
03.08.12
09:35
(18) В чем проблем-то?
21 julia_rostov
 
03.08.12
09:38
как создавалась два документа службка так и создается. а должен быть запрет на создание второго документа Служебка. а получается что я создаю на основанни Счета  документ Служебку, потом захожу второй раз и могу создать заново на основании одного и того же счета два и сколько угодно Служебок на  один и тот же счет
22 julia_rostov
 
03.08.12
09:44
Люди !!! кто видит косяки новичка укажите
23 chief accountant
 
03.08.12
09:44
(21) у тебя
Если Подчиненные.Вид() = "Счет" Тогда
соответственно проверяет подчиненный счет
24 chief accountant
 
03.08.12
09:45
Я так понимаю
Если Подчиненные.Вид() = "Служебка" Тогда
25 julia_rostov
 
03.08.12
09:47
Ок Народ ВСЕМ СПАСИБКИ, БЛИН как здорово что есть народ который помогает таким как я! Правда очень благодарна
26 chief accountant
 
03.08.12
10:06
(25) если забудешь про (19) больше помогать не станем
27 Ёпрст
 
03.08.12
10:15
(17) заместо Прервать - сразу Возврат, заместо 2 условий - УстановитьФильтр.
28 Злопчинский
 
03.08.12
12:37
и все молчат? что их как лохов кинули на большую фотку.