Имя: Пароль:
1C
1С v8
Отмена проведения документа
0 admin1s
 
09.04.18
13:15
Добрый день, только начинаю осваивать программирование в 1С 8.3, есть задача-найти и распровести документ ЧекНаОплату. Нашел в гугле несколько вариантов решения, но не работают, да и хочется разобраться, дойти до сути что ли.. Понимаю что лучше через запрос.
1 Lexey_
 
09.04.18
13:33
(0) ну не знаю, у меня всё работает
2 Cyberhawk
 
09.04.18
13:35
Бывает, держись там
3 Гипервизор
 
09.04.18
13:36
(0) Рассказывайте как делали, что за нерабочие варианты.
4 Cool_Profi
 
09.04.18
13:49
Погуглил, но так и не понял смысл вопроса...
5 oslokot
 
09.04.18
13:56
(4) скорей всего он вот что хочет:

запросом найти док, получить его объект и записать его с режимом записи "отмена проведения"
6 Масянька
 
09.04.18
14:19
(5) И что потом делать с кассой (которая онлайн)?
(0) правильно поставленная задача содержит половину решения (С)
Пиши всю задачу...
7 admin1s
 
10.04.18
13:47
(6) насчет кассы все верно, делать распроведение не будем, но обработку доделать хочется так для себя

Процедура РаспровестиДокумент(Элемент)
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ЧекНаОплату.Номер,
    |    ЧекНаОплату.Ссылка
    | ИЗ
    |    Документ.ЧекНаОплату КАК ЧекНаОплату
    |ГДЕ
    |    ЧекНаОплату.Номер = &Номер";
    
    Запрос.УстановитьПараметр("Номер", "ЦБ00006877");
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Сообщить("Найден документ: "+ ВыборкаДетальныеЗаписи.Номер);
        Объект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
        Если Объект.Проведен Тогда
            Сообщить("Документ проведен!");
            Записать(РежимЗаписиДокумента.ОтменаПроведения);    
            Сообщить("Документ распроведен!");
        КонецЕсли;    
    КонецЦикла;
        
КонецПроцедуры

Ругается: Процедура или функция с указанным именем не определена (Записать)
            <<?>>Записать(РежимЗаписиДокумента.ОтменаПроведения);
8 catena
 
10.04.18
13:51
(7)Если для себя, то нужно себя спросить, почему когда проверяешь Проведен, говоришь, кого проверяешь. А когда записываешь, надеешься, что адинэс сама придумает, кого и куда записывать?
9 Cool_Profi
 
10.04.18
13:52
(7) Главное - никогда не указывает объект, которому метод зовёшь.
Никогда, это плохой тон, пусть система сама прокачивает навыки телепатии
10 admin1s
 
10.04.18
14:07
(8) > почему когда проверяешь Проведен, говоришь, кого проверяешь - как сделать правильно, так?

Если Объект.Проведен =1 Тогда

(9) >Главное - никогда не указывает объект, которому метод зовёшь. -?
11 Cool_Profi
 
10.04.18
14:08
(10)
           Сообщить("Документ проведен!");
            Записать(РежимЗаписиДокумента.ОтменаПроведения);    
            Сообщить("Документ распроведен!");

Кого записываешь-то?
12 Масянька
 
10.04.18
14:13
(10) А там нету Пробит? Реквизит.
13 Малыш Джон
 
10.04.18
14:14
(10) Напиши

Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
14 admin1s
 
10.04.18
14:43
(13) Спасибо, код без ошибок

Подскажите еще такой вариант, нужно при открытии заполнить например Дату, делаю так, но понимаю что не верно:

Процедура ПриОткрытии()
    Форма = ЭлементыФормы.ПолеВвода;
        Форма.НачДата = '04.04.2018';
    Форма.КонДата = '05.04.2018';
КонецПроцедуры
15 Evgenchik
 
10.04.18
14:48
объект.Дата = Дата('20180101');
2 + 2 = 3.9999999999999999999999999999999...