Имя: Пароль:
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)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший