Имя: Пароль:
1C
1С v8
РежимДиалогаВопрос.ДаНет
,
0 ZADR
 
25.03.13
13:09
Как через РежимДиалогаВопрос.ДаНет поставить условие? типо к примеру:
Ответ = Вопрос("Продолжить создание документа?",РежимДиалогаВопрос.ДаНет );
           Если Ответ = КодВозвратаДиалога.Нет Тогда
              Возврат;
                 Иначе
               ""
           КонецЕсли;
1 ZADR
 
25.03.13
13:10
Если я так пишу то программа при запуске выводит сообщение и при любом ответе выполняет операцию создания документа. Что делать?
2 YAGolova
 
25.03.13
13:11
А где ты так пишешь?
3 ZADR
 
25.03.13
13:11
В процедуре
4 ZADR
 
25.03.13
13:11
Как правильно написать код? подскажите...
5 Фокусник
 
25.03.13
13:12
(1) Скорее всего создание документа происходит вне этой процедуры/функции (из которой ты выходишь через "Возврат").
6 YAGolova
 
25.03.13
13:13
(4) Полный код пиши, что за процедура, где этот кусок вставлен
7 ZADR
 
25.03.13
13:14
весь код программы у меня в одной процедуре, и именно этот код  он в начале, я хочу при запускании программы выводило это сообщение(предупреждение)... Если нет то прога чтобы остановилась... Если да то продолжила...
8 Privalov
 
25.03.13
13:19
(7) Ты внимательно перечитай, какую кашу здесь написал, сам-то понял что сказать хотел?
9 Reset
 
25.03.13
13:21
deja-vu
Совсем недавнео была тема, там создали реквизит Ответ - булевый, соотв Ответ всегда был ложь
10 Privalov
 
25.03.13
13:22
(7) Код давай.
11 ZADR
 
25.03.13
13:26
Процедура КнопкаВыполнитьНажатие(Кнопка)
           
      Ответ = Вопрос("Продолжить создание документа?",РежимДиалогаВопрос.ДаНет );
           Если Ответ = КодВозвратаДиалога.Нет Тогда
              Возврат;
                 Иначе
               ""
           КонецЕсли;    
   
   ПодключитьРасширениеРаботыСФайлами();    
   Режим = РежимДиалогаВыбораФайла.Открытие;
   ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
   ДиалогОткрытияФайла.ПолноеИмяФайла = "";
   Фильтр = "Таблица(*.xls)|*.xls";
   ДиалогОткрытияФайла.Фильтр                = Фильтр;
   ДиалогОткрытияФайла.МножественныйВыбор    = Ложь;
   ДиалогОткрытияФайла.Заголовок            = "Выберите файл Excel";
   
   Если ДиалогОткрытияФайла.Выбрать() Тогда
       ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла;
   Иначе
       Возврат;
   КонецЕсли;
   
   Попытка
       Excel = Новый COMОбъект("Excel.Application");
       Excel.WorkBooks.Open(ПутьКФайлу);
       ExcelЛист = Excel.Sheets(1);
   Исключение
       Сообщить("Ошибка при открытий MS Excel!");
       Возврат;
   КонецПопытки;
   
      // максимальное количество строк и столбцов    
      КоличествоЛистов = Excel.Sheets.Count;  
      Лист = Excel.WorkSheets(1);
      ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column;
      ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row;
       
     
                             
     
      // создание документа и заполнение шапки    
     
     
     
     
 Для Строка = 2 по ВсегоСтрок цикл
 ДокОпераций1 = документы.ПоступлениеТоваров.СоздатьДокумент();                        
 ДокОпераций1.Дата = ЭлементыФормы.ПолеВвода1.Значение;            

                           
 спрОрганизация = справочники.Организации.НайтиПоКоду("000000004");
 ДокОпераций1.Организация = спрОрганизация;
 
 
                       
 спрКонтрагенты = справочники.Контрагенты.НайтиПоКоду("000000241") ;            
 ДокОпераций1.Контрагент = спрКонтрагенты;

 Договор = ExcelЛист.Cells(2,10).Value;
 ДокОпераций1.ДоговорКонтрагента = Договор;
 

 
 
 //добавление строки                                  
   
 шаг1 =  ДокОпераций1.Услуги.Добавить();            
         
 спрНоменклатура = справочники.Номенклатура.НайтиПоКоду("Н0000000607");
 шаг1.Номенклатура = спрНоменклатура;

 шаг1.Количество = "1";
 шаг1.Цена = ExcelЛист.Cells(2,9).Value;
 
 
 спрНДС = справочники.СтавкиНДС.НайтиПоКоду("0AKG00002");
 шаг1.СтавкаНДС = спрНДС;  
 
                     
 ДокОпераций1.ОтражатьВУправленческомУчете = Истина;
 ДокОпераций1.ОтражатьВБухгалтерскомУчете = Истина;
 ДокОпераций1.УчитыватьНДС = Истина;

 
 
 
 
 
 ДокОпераций1.Записать();

         
//КонецЦикла;
   

                         
   
  Excel.Quit();
КонецПроцедуры
12 ZADR
 
25.03.13
13:27
(10)Вот код
13 Privalov
 
25.03.13
13:32
Документ создается где-то еще.
14 Reset
 
25.03.13
13:32
(11) Добавь в начало процедуры (в самое начало, перед всем кодом)
Сообщить(Отказ);

и нажми Ctrl-F7
Если скажет что ошибок нет, то см (9)
15 Privalov
 
25.03.13
13:32
И пройди отладчиком и посмотри свои значения.
16 НафНаф
 
25.03.13
13:33
что за х?

Иначе
               ""
           КонецЕсли;
17 cw014
 
25.03.13
13:33
Диалог просто убил:

(2) А где ты так пишешь?
(3) В процедуре


Наверное это процедура, который отчет формирует, а тут внезапно начала создавать документ. :)))
18 ZADR
 
25.03.13
13:34
(14) {Форма.Форма.Форма(3,1)}: Определения процедур и функций должны размещаться перед операторами тела модуля
<<?>>Процедура КнопкаВыполнитьНажатие(Кнопка) (Проверка: Толстый клиент (обычное приложение))
19 Reset
 
25.03.13
13:34
(14) ага, глупый тест в свете (16)
20 Reset
 
25.03.13
13:34
(18) Я сказал в начало процедуры, а не перед ней :)
21 Privalov
 
25.03.13
13:35
(18) Написано - "Добавь в начало процедуры"!! Ты еще и  читать не умеешь?
22 Reset
 
25.03.13
13:36
(14) Только
Сообщить(Ответ)

конечно же, а не Отказ
23 Reset
 
25.03.13
13:38
(18)
Процедура КнопкаВыполнитьНажатие(Кнопка)
Сообщить(Ответ);
Сообщить(ТипЗнч(Ответ));

      Ответ = Вопрос("Продолжить создание документа?",РежимДиалогаВопрос.ДаНет );
           Если Ответ = КодВозвратаДиалога.Нет Тогда
              Возврат;
                 Иначе
               //""
           КонецЕсли;    
// остальная фигня
...
24 ZADR
 
25.03.13
13:45
Процедура КнопкаВыполнитьНажатие(Кнопка)
Сообщить(Ответ);
Сообщить(ТипЗнч(Ответ));

      Ответ = Вопрос("Продолжить создание документа?",РежимДиалогаВопрос.ДаНет );
           Если Ответ = КодВозвратаДиалога.Нет Тогда
              Возврат;
                 Иначе
               //""

           КонецЕсли;    
Если пишу так то выходит ошибка:{Форма.Форма.Форма(7,10)}: Переменная не определена (Ответ)
Сообщить(<<?>>Ответ); (Проверка: Толстый клиент (обычное приложение))
{Форма.Форма.Форма(8,17)}: Переменная не определена (Ответ)
Сообщить(ТипЗнч(<<?>>Ответ)); (Проверка: Толстый клиент (обычное приложение))
25 НафНаф
 
25.03.13
13:45
Ответ = Вопрос("Продолжить создание документа?",РежимДиалогаВопрос.ДаНет );

Сообщить(Ответ);
Сообщить(ТипЗнч(Ответ));
26 ZADR
 
25.03.13
13:47
(25) а вот так работает... ВСЕМ СПАСИБО!
27 Фокусник
 
25.03.13
13:48
(24) Осваиваешь программирование "методом тыка"? :)
28 ZADR
 
25.03.13
13:50
=)
29 orefkov
 
25.03.13
13:57
РежимДиалогаВопрос.ДаНетНаверное
30 mikecool
 
25.03.13
13:59
(26) вот так вот простое Сообщить() решает все вопросы
31 samozvanec
 
25.03.13
14:05
я так и не понял, что поменялось...
32 Privalov
 
25.03.13
14:12
(31) ))))
+100
33 Reset
 
25.03.13
14:18
(31) (32)
Думаю, появился комментарий перед этим:
   //""
34 Фокусник
 
25.03.13
14:20
(33) Без этого не пройдет синтакс-контроль, а значит код из (0) - не копипаста, а вольная трактовка :)
35 Reset
 
25.03.13
14:22
(34) Именно так, то что выдавалось неправильно работающий код в (0), на самом деле не доходило даже до сохранения.
А работал некий произвольный код, о котором нам ничего не известно.
После исправления синтаксической ошибки стал работать код из (0)
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший