Имя: Пароль:
1C
1С v8
Переменная не определена в 1С 8
0 9451523
 
08.02.16
13:21
Доброго дня Всем
Создал новый документ в 1С 8.2 по образцу документа с 1С 7 версии,
в модуле формы проставил код:
Перем НачальнаяДатаДокумента;

Процедура Пересчет(ТекКол)
    Валюта = Справочники.ДоговорыКонтрагентов.ВалютаВзаиморасчетов;
    Курс = Валюта.Курс.Получить.ДатаДок;
    Кратность = Валюта.Кратность.Получить.ДатаДок;
    Кратность = ?(Кратность=0,1,Кратность);
    Если (ТекКол = "Сорт") или (ТекКол = "Коттировка") или (ТекКол = "Класс") или (ТекКол = "Тип") или (ТекКол = "Коэффициент") или (ТекКол = "Процент") Тогда
        Если ТекКол <> "Коэффициент" Тогда
            Коэффициент = 0;
        КонецЕсли;
        Если ТекКол <> "Процент" Тогда
            Процент = 0;
        КонецЕсли;
        Цена = глРассчитатьЦенуХлопка(Котировка,Сорт,Класс,Тип,КодТипа,Коэффициент,Процент, СкидкаПоКонтракту);
        Сумма = КоличествоВес*Цена/1000;
        СуммаБух = Сумма*Курс/Кратность;
        Комиссия = Сумма*КомиссияКонтрагента/100;
        ВсегоБух = СуммаБух+Комиссия*Курс/Кратность;
    ИначеЕсли ТекКол = "КоличествоВес" Тогда
        Сумма = КоличествоВес*Цена/1000;
        СуммаБух = Сумма*Курс/Кратность;
        Комиссия = Сумма*КомиссияКонтрагента/100;
        ВсегоБух = СуммаБух+Комиссия*Курс/Кратность;
    ИначеЕсли ТекКол = "Скидка_" Тогда
        Цена = глРассчитатьЦенуХлопка(Котировка,Сорт,Класс,Тип,КодТипа,Коэффициент,Процент, СкидкаПоКонтракту);
        Цена = Цена -(Цена*Скидка_/100);
        Сумма = КоличествоВес*Цена/1000;
        СуммаБух = Сумма*Курс/Кратность;
        Комиссия = Сумма*КомиссияКонтрагента/100;
        ВсегоБух = СуммаБух+Комиссия*Курс/Кратность;
    ИначеЕсли (ТекКол = "СуммаБух") или (ТекКол = "Комиссия") Тогда
        ВсегоБух = СуммаБух+Комиссия*Курс/Кратность;
    ИначеЕсли ТекКол = "Сумма" Тогда
        КоличествоВес = ?(КоличествоВес=0,1000,КоличествоВес);
        Цена = Сумма/КоличествоВес*1000;
        СуммаБух = Сумма*Курс/Кратность;
        Комиссия = Сумма*КомиссияКонтрагента/100;
        ВсегоБух = СуммаБух+Комиссия*Курс/Кратность;
    КонецЕсли;
КонецПроцедуры //Пересчет
//_____________________________________________________________________________
Процедура РасчитатьКотировку()
    Если ДатаТТН = Дата(0) Тогда
        Возврат;
    КонецЕсли;
    Котировка = ОКР((Константы.ИндексАУ.Получить(ДатаТТН)+Константы.ИндексА.Получить(ДатаТТН))/2,2,1);
    Пересчет("Котировка");
КонецПроцедуры //РасчитатьКотировку
//_____________________________________________________________________________
Процедура ВводНового(Копирование) //предопределенная
    Если Копирование = 1 Тогда
        Возврат;
    КонецЕсли;
    КомиссияКонтрагента = ВосстановитьЗначение("КомиссияКонтрагента");
    Если КомиссияКонтрагента = 0 Тогда
        КомиссияКонтрагента = 1;
    КонецЕсли;
    НДС = ВосстановитьЗначение("СтавкаНДС");
    Если НДС = 0 Тогда
        НДС = 18;
    КонецЕсли;
КонецПроцедуры //ВводНового
//_____________________________________________________________________________
Процедура ПриОткрытии()
    
        НачальнаяДатаДокумента = Дата;
    КонецПроцедуры

Процедура ПриЗаписи() //предопределенная
        СохранитьЗначение("КомиссияКонтрагента",КомиссияКонтрагента);
    СохранитьЗначение("СтавкаНДС",НДС);
КонецПроцедуры //ПриЗаписи

функцию  глРассчитатьЦенуХлопка которая была в глобальном модуле в 1с 7 вставил в общий модуль 1с 8.2 . Функция отрабатывает но пошли ошибки в модуле формы:
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(15,33)}: Переменная не определена (Котировка)
        Цена = глРассчитатьЦенуХлопка(<<?>>Котировка,Сорт,Класс,Тип,КодТипа,Коэффициент,Процент, СкидкаПоКонтракту); (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(26,33)}: Переменная не определена (Котировка)
        Цена = глРассчитатьЦенуХлопка(<<?>>Котировка,Сорт,Класс,Тип,КодТипа,Коэффициент,Процент, СкидкаПоКонтракту); (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(15,43)}: Переменная не определена (Сорт)
        Цена = глРассчитатьЦенуХлопка(Котировка,<<?>>Сорт,Класс,Тип,КодТипа,Коэффициент,Процент, СкидкаПоКонтракту); (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(26,43)}: Переменная не определена (Сорт)
        Цена = глРассчитатьЦенуХлопка(Котировка,<<?>>Сорт,Класс,Тип,КодТипа,Коэффициент,Процент, СкидкаПоКонтракту); (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(15,48)}: Переменная не определена (Класс)
        Цена = глРассчитатьЦенуХлопка(Котировка,Сорт,<<?>>Класс,Тип,КодТипа,Коэффициент,Процент, СкидкаПоКонтракту); (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(26,48)}: Переменная не определена (Класс)
        Цена = глРассчитатьЦенуХлопка(Котировка,Сорт,<<?>>Класс,Тип,КодТипа,Коэффициент,Процент, СкидкаПоКонтракту); (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(15,54)}: Переменная не определена (Тип)
        Цена = глРассчитатьЦенуХлопка(Котировка,Сорт,Класс,<<?>>Тип,КодТипа,Коэффициент,Процент, СкидкаПоКонтракту); (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(26,54)}: Переменная не определена (Тип)
        Цена = глРассчитатьЦенуХлопка(Котировка,Сорт,Класс,<<?>>Тип,КодТипа,Коэффициент,Процент, СкидкаПоКонтракту); (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(15,58)}: Переменная не определена (КодТипа)
        Цена = глРассчитатьЦенуХлопка(Котировка,Сорт,Класс,Тип,<<?>>КодТипа,Коэффициент,Процент, СкидкаПоКонтракту); (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(26,58)}: Переменная не определена (КодТипа)
        Цена = глРассчитатьЦенуХлопка(Котировка,Сорт,Класс,Тип,<<?>>КодТипа,Коэффициент,Процент, СкидкаПоКонтракту); (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(16,11)}: Переменная не определена (КоличествоВес)
        Сумма = <<?>>КоличествоВес*Цена/1000; (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(21,11)}: Переменная не определена (КоличествоВес)
        Сумма = <<?>>КоличествоВес*Цена/1000; (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(28,11)}: Переменная не определена (КоличествоВес)
        Сумма = <<?>>КоличествоВес*Цена/1000; (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(27,22)}: Переменная не определена (Скидка_)
        Цена = Цена -(Цена*<<?>>Скидка_/100); (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(44,7)}: Переменная не определена (ДатаТТН)
    Если <<?>>ДатаТТН = Дата(0) Тогда (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(47,47)}: Переменная не определена (ДатаТТН)
    Котировка = ОКР((Константы.ИндексАУ.Получить(<<?>>ДатаТТН)+Константы.ИндексА.Получить(ДатаТТН))/2,2,1); (Проверка: Толстый клиент (обычное приложение))
{Документ.ПоступлениеХлопковолокна.Форма.ФормаДокумента.Форма(47,83)}: Переменная не определена (ДатаТТН)
    Котировка = ОКР((Константы.ИндексАУ.Получить(ДатаТТН)+Константы.ИндексА.Получить(<<?>>ДатаТТН))/2,2,1); (Проверка: Толстый клиент (обычное приложение))

везде ругается только на переменные , мне что их отдельно объявлять? в семерке они не объявлены, там они все в реквизитах табличной части документа ,в 8 версии я тоже их внес в табличную часть документа, подскажите пожалуйста как правильно сделать?
С уважением Дамир
1 marty0701
 
08.02.16
13:23
(0)ИмяТЧ.КоличествоВес, видимо, и т.д.
2 butterbean
 
08.02.16
13:23
(0) ты бы что-ли посмотрел код в типовых конфигурациях, книжки почитал...
3 ptiz
 
08.02.16
13:29
(0) Код 7.7 забыть. Переписать всё заново на языке 1С 8.
4 Ёпрст
 
08.02.16
13:32
Тяжко в Узбекистане кодить, однако
5 Ёпрст
 
08.02.16
13:34
(0) передавай строку табчасти в процу, у строки смотри атрибуты, их и меняй.
6 9451523
 
08.02.16
14:12
да  Ёпрст кодить у нас в Узбекистане и вправду тяжело особенно когда сисадмина заставляют 1с осваивать , техподдержки нету только Ваш форум и выручает. а как в восьмерке правильно передать строку табчасти можно пример кода, а то после семерки тяжело кодить совсем тут все подругому
7 Ёпрст
 
08.02.16
14:24
(6)
если обычные формы, то, на колонку с товаром, например вешаешь

Процедура ПриИзмененииНоменклатурыТовары(Элемент)
    СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
    // Выполнить общие действия для всех документов при изменении номенклатуры.
    ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
КонецПроцедуры

а в общем модуле ОбработкаТабличныхЧастей
описываешь ужо ПриИзмененииНоменклатурыТабЧасти

где у переданной СтрокаТабличнойЧасти смотришь атрибуты Номенклатура, количество, цена , сумма  и т.д..
8 Ёпрст
 
08.02.16
14:26
можешь и не пихать в общий модуль, а писать сразу

Процедура ПриИзмененииНоменклатурыТовары(Элемент)
    СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
    СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Цена*СтрокаТабличнойЧасти.Количество;

//и привет      

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