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

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

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

Автор: Said 03.02.11, 9:52

Здрасте, дело было так, в документе при привышении суммы за 1000 должна появиться возможность ввода нового документа ЗаявкаНаТранспорт,
Вот собственно и сам код:

&НаКлиенте
Процедура СуммаДокументаПриИзменении(Элемент)
        //ЗаявкаНаТранспортОткрыть()
    Если объект.СуммаДокумента > 1000 Тогда
        Режим = РежимДиалогаВопрос.ДаНет;
        Текст = "ru = ""Выписать документ Заявка на транспорт?"";";
                    //  " + " en = ""Do you want to continue?""";
        Ответ = Вопрос(НСтр(Текст), Режим, 0);
        Если Ответ = КодВозвратаДиалога.Да Тогда
            Форма = СоздатьДокументЗаявкаНаТранспорт();
            Форма.Открыть();
            КонецЕсли;    
    
КонецЕсли;

КонецПроцедуры

&НаСервере
Функция СоздатьдокументЗаявкаНаТранспорт()
    
    НовыйДок = Документы.ЗаявкаНаТранспорт.СоздатьДокумент();
    Возврат    НовыйДок;

КонецФункции


Пробовал разные методы но пишет что ошибка преобразования данных, зарание большое спасибо!

Автор: logist 03.02.11, 10:13

            Форма = СоздатьДокументЗаявкаНаТранспорт();
            Форма.Открыть();

    НовыйДок = Документы.ЗаявкаНаТранспорт.СоздатьДокумент();
    Возврат    НовыйДок;


Жуть. Функция передает в значение "Форма" ссылку на новый документ, шо Вы пытаетесь открыть....
Покурите - "ПолучитьФормуНовогоДокумента"

Автор: mister-x 03.02.11, 11:44

Цитата(Said @ 03.02.11, 10:52) *
Здрасте, дело было так, в документе при привышении суммы за 1000 должна появиться возможность ввода нового документа ЗаявкаНаТранспорт,
Вот собственно и сам код:

&НаКлиенте
Процедура СуммаДокументаПриИзменении(Элемент)
//ЗаявкаНаТранспортОткрыть()
Если объект.СуммаДокумента > 1000 Тогда
Режим = РежимДиалогаВопрос.ДаНет;
Текст = "ru = ""Выписать документ Заявка на транспорт?"";";
// " + " en = ""Do you want to continue?""";
Ответ = Вопрос(НСтр(Текст), Режим, 0);
Если Ответ = КодВозвратаДиалога.Да Тогда
Форма = СоздатьДокументЗаявкаНаТранспорт();
Форма.Открыть();
КонецЕсли;

КонецЕсли;

КонецПроцедуры

&НаСервере
Функция СоздатьдокументЗаявкаНаТранспорт()

НовыйДок = Документы.ЗаявкаНаТранспорт.СоздатьДокумент();
Возврат НовыйДок;

КонецФункции

Пробовал разные методы но пишет что ошибка преобразования данных, зарание большое спасибо!


А, Ви часом не проходите дист. курс "Введение в конфигурирование на безе платформы 1С:Предприятие 8.2"? Там в кінці є таке ТЗ (Большая самост. работа). wink.gif

Автор: Said 03.02.11, 12:11

Цитата(mister-x @ 03.02.11, 12:44) *
А, Ви часом не проходите дист. курс "Введение в конфигурирование на безе платформы 1С:Предприятие 8.2"? Там в кінці є таке ТЗ (Большая самост. работа). wink.gif

Скрывать не буду, это и есть задание из этой работы, ))) Спасибо, уже сделал только немного не так. Ща покажу)
Процедура СуммаДокументаПриИзменении(Элемент)
        //ЗаявкаНаТранспортОткрыть()
    Если объект.СуммаДокумента > 1000 Тогда
        Режим = РежимДиалогаВопрос.ДаНет;
        Текст = "ru = ""Выписать документ Заявка на транспорт?"";";
                    //  " + " en = ""Do you want to continue?""";
        Ответ = Вопрос(НСтр(Текст), Режим, 0);
        Если Ответ = КодВозвратаДиалога.Да Тогда
            СсылкаНаДокумент = СоздатьНовыйДокумент();
            ОткрытьЗначение(СсылкаНаДокумент);
        КонецЕсли;    
    
КонецЕсли;

КонецПроцедуры

&НаСервере
Функция СоздатьНовыйДокумент()
    НовыйДокумент = Документы.ЗаявкаНаТранспорт.СоздатьДокумент();
    НовыйДокумент.Дата = ТекущаяДата();
    НовыйДокумент.Записать();
    Возврат НовыйДокумент.Ссылка;
КонецФункции

Автор: Said 03.02.11, 12:16

У меня еще вот какой вопрос, Есть документ "ЗаявкаНаТранспорт" и "ФормированиеБригады". В документе ЗаявкаНаТранспорт при выборе машины доставки нужно что бы автоматически заполнялись поля "Водитель", "Грузчик1" "Грузчик2", из документа "ФормированиеБригадыт" Если за машиной не определена бригада выдатся сообщение "Бригада не сформирована". при этом поле машина сбрасывается. добавлю что это задача из методички "Введение в конфигурирование в систме 1с Предприятие основные объекты".

Создал не переодический регистр сведений СостояниеАвтомобиля в нем определил измерения НазначеныйАвтомобиль, Водитель, грузчик1, Грузчик2, ПоказанияСчетчика.
в модуле формы создал обработчик события "МашинаПриИзменении"

прошу сильно не пинать. Заранее Большое Спасибо!

Автор: Vofka 03.02.11, 12:21

Цитата
прошу сильно не пинать.

Пинать буду сильно! Не надо все свои вопросы задавать в одной теме и превращать её в мусорку. 1 вопрос - 1 тема. Тема закрыта!

Автор: logist 03.02.11, 12:22

Цитата(Said @ 03.02.11, 12:11) *
Процедура СуммаДокументаПриИзменении(Элемент)
        //ЗаявкаНаТранспортОткрыть()
    Если объект.СуммаДокумента > 1000 Тогда
        Режим = РежимДиалогаВопрос.ДаНет;
        Текст = "ru = ""Выписать документ Заявка на транспорт?"";";
                    //  " + " en = ""Do you want to continue?""";
        Ответ = Вопрос(НСтр(Текст), Режим, 0);
        Если Ответ = КодВозвратаДиалога.Да Тогда
            СсылкаНаДокумент = СоздатьНовыйДокумент();
            ОткрытьЗначение(СсылкаНаДокумент);
        КонецЕсли;    
    
КонецЕсли;

КонецПроцедуры

&НаСервере
Функция СоздатьНовыйДокумент()
    НовыйДокумент = Документы.ЗаявкаНаТранспорт.СоздатьДокумент();
    НовыйДокумент.Дата = ТекущаяДата();
    НовыйДокумент.Записать();
    Возврат НовыйДокумент.Ссылка;
КонецФункции


Японский магнитофон...

Автор: Batchir 03.02.11, 14:33

Мама дорогая, это ж если 100 раз поменять сумму документа, то создастся 100 заявок.
Вы внимательно читали ТЗ? Помоему "Должна быть возможность ввода документа" и "Автоматически создавать при изменении суммы документа" совсем не похожие строчки

З.Ы. Vofka, рано тему закрыл, откроем пока.

Автор: mister-x 03.02.11, 20:36

Цитата
Мама дорогая, это ж если 100 раз поменять сумму документа, то создастся 100 заявок.
Вы внимательно читали ТЗ? Помоему "Должна быть возможность ввода документа" и "Автоматически создавать при изменении суммы документа" совсем не похожие строчки

...при оформлении док. "Расходная", в случае, если сумма покупки превышает 1 тис. рублей, должно выдаваться сообщение о возможности предоставления бесплатной доставки, и только в этом случае менеджер может выписать на основании док. "Расходная" док. "Заявка на транспорт". В данном доке указывается покупатель, контактное лицо (в диалоге должен быть виден телефон), дата и время доставки (оно может быть любым, но не раньше текущей даты). Документ не имеет табл. части, но хранить ссылку на документ основание...

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