Версия для печати темы (https://pro1c.org.ua/index.php?s=7e16f8e0fbafbf9629df06ce39a0dcd0&showtopic=66956)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ При изменения статуса заказа, заказ не проводится

Автор: MOTOPARTNER 22.04.22, 7:25



Есть кнопка в 1С отправить СМС с ТТН при нажатии на нее отправляется ТТН и меняется статус заказа.
Сам код:

    Объект.СостояниеЗаказа = ПредопределенноеЗначение("Справочник.СостоянияЗаказовПокупателей.Отправлен");
    Объект.ТТН_Статус = Истина;    
    Если ЗначениеЗаполнено(ТТН) Тогда
        Форма = ПолучитьФорму("Документ.Событие.Форма.ФормаСообщенияSMS");
        Форма.Объект.ДокументОснование = Объект.Ссылка;  
        Форма.Объект.ТипСобытия = ПредопределенноеЗначение("Перечисление.ТипыСобытий.СообщениеSMS");
        Форма.Объект.НомерТелефона = Объект.КонтактныйТелефон;
        Форма.Объект.Клиент = Объект.Контрагент;
        Форма.Объект.Тема = "ТТН на замовлення";
        Форма.Объект.Содержание = "ТТН на замовлення " +Объект.Номер+ " Нова пошта ТТН: " +Объект.ТТН+ "";
        Форма.Записать();
        ////    Если Вопрос("Отправить без редактирования?", РежимДиалогаВопрос.ДаНет, 0) = КодВозвратаДиалога.Нет Тогда
        ////        Предупреждение("Теперь отправка SMS только вручную!!!");
        ////        Форма.ОткрытьМодально();
        ////    Иначе
        Форма.Отправить(Неопределено);
        ////    КонецЕсли;
        ////
    Если Вопрос("Открыть реестр посылок?", РежимДиалогаВопрос.ДаНет, 0) = КодВозвратаДиалога.Да Тогда
        ОбъектКопирования = Новый COMОбъект("htmlfile");
        ОбъектКопирования.ParentWindow.ClipboardData.SetData("Text",Объект.ТТН);
        ЗапуститьПриложение("https://new.novaposhta.ua/dashboard/invoices-in");
    Иначе
        Возврат;
    КонецЕсли;


Все работает, статус подставляет но когда начинаю проводить заказ пишет вот такую ошибку, когда вручную меняю все хорошо.



Цитата
{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(3013)}: Ошибка при вызове метода контекста (Записать)
Записать(ПараметрыЗаписи);
по причине:
Ошибка при выполнении обработчика - 'ПриЗаписи'
по причине:
{ОбщийМодуль.СостоянияЗаказов.Модуль(230)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
Записать(ПараметрыЗаписи);

по причине:
Ошибка при выполнении обработчика - 'ПриЗаписи'
по причине:
{ОбщийМодуль.СостоянияЗаказов.Модуль(230)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)

{ОбщийМодуль.СостоянияЗаказов.Модуль(230)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
Если ПорядокПредыдущего = Неопределено Или ПорядокТекущего >= ПорядокПредыдущего Тогда


Вот в этом коде что-то точно не дописал...

Объект.СостояниеЗаказа = ПредопределенноеЗначение("Справочник.СостоянияЗаказовПокупателей.Отправлен");


Подскажите, что нужно дописать.

Автор: Vofka 22.04.22, 8:57

В одной из этих переменных у вас не число находится: ПорядокТекущего, ПорядокПредыдущего. Возможно, ПорядокТекущего в этом случае Неопределено.

Автор: MOTOPARTNER 22.04.22, 10:05

Так что теперь делать? ))) Как убрать эту ошибку?

Автор: andr_andrey 22.04.22, 10:43

MOTOPARTNER @ Сегодня, 11:05 * ,
Поставить точку останова, посмотреть значение переменных.
Затем, применяя логику и изучая код, определить где и как должны меняться значения этих переменных и узнать причину ошибки.
Затем, применяя навыки программирования, исправить ошибку.

Автор: MOTOPARTNER 22.04.22, 18:58

Может нужно не ПредопределенноеЗначение("Справочник.СостоянияЗаказовПокупателей.Отправлен"); указывать?
За место ПредопределенноеЗначение что-то другое?

Автор: denis84 23.04.22, 5:46

MOTOPARTNER @ Вчера, 19:58 * ,
Напишите просто Справочник.СостоянияЗаказовПокупателей.Отправлен

Автор: MOTOPARTNER 23.04.22, 11:17

denis84 @ Сегодня, 6:46 * ,
Если так тогда ошибка

{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(11646,27)}: Переменная не определена (Справочники)
    Объект.СостояниеЗаказа = <<?>>Справочники.СостоянияЗаказовПокупателей.Отправлен; (Проверка: Тонкий клиент)

Автор: ZenBi 26.04.22, 17:03

MOTOPARTNER @ 23.04.22, 12:17 * ,
Я конечно человек глупый, а в некоторых местах вообще тормоз... но где Вы выполняете команду? На сервере или на клиенте?

- Если на сервере, то:
Объект.СостояниеЗаказа = Справочники.СостоянияЗаказовПокупателей.Отправлен;

- А вот если на клиенте, то:
Объект.СостояниеЗаказа = ПредопределенноеЗначение("Справочник.СостоянияЗаказовПокупателей.Отправлен");


Как-то так.

ЗЫ. Хотя может быть что я не понял проблемы. И да проверьте пожалуйсть есть ли вообще предопределённый елемент, или справочник хранит информацию типа булево.


Стоять!
Только сейчас прочитал все сообщения темы.
Ели проблема все ещё в типе данных, тогда Vofka дал ответ.
ПОставьте точку остановки и проверьте значения "ПорядокТекущего, ПорядокПредыдущего"
Если ПорядокПредыдущего = неопределено то ошибка имеет место быть.




Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua