Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: При изменения статуса заказа, заказ не проводится
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
MOTOPARTNER


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

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


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



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

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

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


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

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


Подскажите, что нужно дописать.
Vofka
В одной из этих переменных у вас не число находится: ПорядокТекущего, ПорядокПредыдущего. Возможно, ПорядокТекущего в этом случае Неопределено.
MOTOPARTNER
Так что теперь делать? ))) Как убрать эту ошибку?
andr_andrey
MOTOPARTNER @ Сегодня, 11:05 необходимо зарегистрироваться для просмотра ссылки ,
Поставить точку останова, посмотреть значение переменных.
Затем, применяя логику и изучая код, определить где и как должны меняться значения этих переменных и узнать причину ошибки.
Затем, применяя навыки программирования, исправить ошибку.
MOTOPARTNER
Может нужно не ПредопределенноеЗначение("Справочник.СостоянияЗаказовПокупателей.Отправлен"); указывать?
За место ПредопределенноеЗначение что-то другое?
denis84
MOTOPARTNER @ Вчера, 19:58 необходимо зарегистрироваться для просмотра ссылки ,
Напишите просто Справочник.СостоянияЗаказовПокупателей.Отправлен
MOTOPARTNER
denis84 @ Сегодня, 6:46 необходимо зарегистрироваться для просмотра ссылки ,
Если так тогда ошибка

{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(11646,27)}: Переменная не определена (Справочники)
    Объект.СостояниеЗаказа = <<?>>Справочники.СостоянияЗаказовПокупателей.Отправлен; (Проверка: Тонкий клиент)
ZenBi
MOTOPARTNER @ 23.04.22, 12:17 необходимо зарегистрироваться для просмотра ссылки ,
Я конечно человек глупый, а в некоторых местах вообще тормоз... но где Вы выполняете команду? На сервере или на клиенте?

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

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


Как-то так.

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


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



Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.