Имя: Пароль:
1C
1C 7.7
v7: Ошибка в комплексной при программном проведении документа
0 san4ez1008
 
14.08.17
11:17
Комплексная 4.5, делаю выгрузку документов из ТиС 9.2 (складская) в комплексную, при проведении документа ВозвратОтПокупателя выскакивает ошибка
Статус = глСП.ЗначениеПоИдентификатору(ВидТМЦ.Идентификатор());
{Глобальный модуль(8846)}: Значение не представляет агрегатный объект (Идентификатор)

протрассировал, по ходу ВидТМЦ не заполняется.. вроде при заполнении документа указал все необходимые реквизиты, может, что-то не так или не там делаю? Помогите, пожалуйста, мозг уже сломал весь. Код заполнения документа:

Функция ЗаполнитьВозвратОтПокупателя(Док)
                            
    ДатаДок=ОснДок.ДатаДок;
    //Филиал=ОснДок.Филиал;
    Проект=ОснДок.Проект;
    //Фирма=ОснДок.Фирма;
    Автор=ОснДок.Автор;
    
    Док.ДатаДок=ДатаДок;
    
    Док.ЮрЛицо=Док.Фирма.ЮрЛицо;
    Док.Проект=Проект;
    Док.Автор=Автор;
    Док.Комментарий="Возврат товара с филиала (торговой точки)";

    Док.ДокОснование = ОснДок.ТекущийДокумент();
    Док.Валюта = глРубли;
    Док.Курс = 1;
    Док.Кратность = 1;
    //Док.Счет = 42; //Неопределенный.
    //Док.Субконто1 = Бакалея 56; //Неопределенный.
    //Док.Субконто2 = ; //Неопределенный.
    //Док.Субконто3 = ; //Неопределенный.
    //Док.СчетНУ = ; //Неопределенный.
    //Док.СубконтоНУ1 = ; //Неопределенный.
    //Док.СубконтоНУ2 = ; //Неопределенный.
    //Док.СубконтоНУ3 = ; //Неопределенный.
    //Док.ВосстанавливатьНДС = 0;

    Спр=СоздатьОбъект("Справочник.Номенклатура");
    Если Спр.НайтиПоНаименованию("Товары в ассортименте",0,1)=0 Тогда
        Сообщить("Не найдена номенклатура ""Товары в ассортименте""!");
        Возврат 0;
    КонецЕсли;
    ТовВАсрт=Спр.ТекущийЭлемент();
    
    ВрТЗ="";
    ОснДок.ВыгрузитьТабличнуюЧасть(ВрТЗ);
    ВрТЗ.ВыбратьСтроки();
    Пока ВрТЗ.ПолучитьСтроку()=1 Цикл
        ВрТЗ.РозничнаяЦена=ВрТЗ.РозничнаяЦена*ВрТЗ.Количество;
    КонецЦикла;
    
    ВрТЗ.Свернуть("СтавкаНДС,СтавкаНП","Сумма,СуммаНДС,СуммаНП,РозничнаяЦена");

    Док.УдалитьСтроки();
    ВрТЗ.ВыбратьСтроки();
    Пока ВрТЗ.ПолучитьСтроку()=1 Цикл    
        Док.НоваяСтрока();

        Док.Номенклатура = ТовВАсрт;
        Док.Номенклатура.ВидСтатус=Перечисление.ВидыТМЦ.Товар;
        Док.Количество=1;
        Док.Единица=Док.Номенклатура.БазоваяЕдиница;
        Док.Коэффициент=1;        
        Док.Сумма=ВрТЗ.РозничнаяЦена;
        Док.Цена=?(Док.Количество=0,0,Док.Сумма/Док.Количество);
        //Док.РозничнаяЦена=1;
        глПересчетТаблЧасти(Док,"РозничнаяЦена");
    КонецЦикла;

    Возврат 1;
КонецФункции
1 san4ez1008
 
14.08.17
11:23
причем при копировании документа и его проведении все ровно
2 Злопчинский
 
14.08.17
11:26
Проверь на всякий случай в торговой базе документ основание плступлениятмц - в нем заполнен вид тмц?
3 Злопчинский
 
14.08.17
11:30
Товары в ассортименте проверь х заполнен ли в карточке вид тмц
4 Злопчинский
 
14.08.17
11:32
ВидТмц на который ругается - он откуда берётся при проведении?
Проверь есть ли в возврате от покупателя реквизит видтмц ; походу он у тебя не заполнег
5 san4ez1008
 
14.08.17
11:38
(4) реквизита ВидТМЦ нету, есть какой-то ВидСтатус
6 san4ez1008
 
14.08.17
11:39
(2) у меня основание-продажа оптом
7 san4ez1008
 
14.08.17
11:39
(3) заполнен
8 san4ez1008
 
14.08.17
11:40
//******************************************************************************
// ?????????????????????????????(??????,????????????,???????????, ????? = 0)
//
// ?????????:
//  ??????       - ??? ???      (????????????.???????)
//  ???????????? - ???????????? (??????? ??????????? ????????????)
//  ???????????  - ??? ????????
//  ?????          - ?????, ?? ??????? ??????????? ??????
//
// ???????????? ????????:
//  ?????? ?????? (???????????? ?????????????)
//
// ????????:
//  ?????????? ?????? ??????, ?? ???????? ????? ??????????? ???, ? ???????????
//  ?? ???? ???, ???? ???????????? ? ??????????? ????????????? ????????.
//
??????? ?????????????????????????????(??????,????????????,???????????, ????? = 0) ???????
    ????? ??????;
    
    ???? ??????=????????????.???????.????? ?????
        ???? (???????????=????.?????????????????) ???
             (???????????=????.????????????????????????) ???    
             (???????????=????.????????????????) ?????
            ?????? = ????.?_????????;
        ?????
            ???? ????????????.??????????????? = ????????????.????????????????.???? ?????
                ?????? = ????.?_????;
            ?????    
                ?????? = ????.?_?????????;
                ???? ??????????????(?????) = 0  ?????
                    ???? ?????.?????????????? = 1 ?????
                        ?????? = ????.?_????????;
                    ?????????;
                ?????????;
            ?????????;
        ?????????;  
    ????????? ??????=????????????.???????.???????? ?????
        ?????? = ????.????????????????????????("?_"+????????????.???????????????.?????????????());
    ????? // ????????? ??? ?????????????    
        ?????? = ????.????????????????????????(??????.?????????????());
    ?????????;
                                                              
    ??????? ??????;
    
???????????? // ?????????????????????????????()
9 san4ez1008
 
14.08.17
11:41
//******************************************************************************
// глПолучитьСтатусПартииПрихода(ВидТМЦ,Номенклатура,КодОперации, Склад = 0)
//
// Параметры:
//  ВидТМЦ       - вид ТМЦ      (Перечисление.ВидыТМЦ)
//  Номенклатура - номенклатура (элемент справочника Номенклатура)
//  КодОперации  - Код операции
//  Склад          - склад, на который приходуется партия
//
// Возвращаемое значение:
//  Статус партии (перечисление СтатусыПартии)
//
// Описание:
//  Возвращает статус партии, по которому будет оприходован ТМЦ, в зависимости
//  от вида ТМЦ, вида номенклатуры и совершаемой хозяйственной операции.
//
Функция глПолучитьСтатусПартииПрихода(ВидТМЦ,Номенклатура,КодОперации, Склад = 0) Экспорт
    Перем Статус;
    
    Если ВидТМЦ=Перечисление.ВидыТМЦ.Товар Тогда
        Если (КодОперации=глКО.ПриемНаРеализацию) или
             (КодОперации=глКО.ПриемНаРеализациюРозница) или    
             (КодОперации=глКО.ВозвратКомитенту) Тогда
            Статус = глСП.Т_Принятый;
        Иначе
            Если Номенклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Тара Тогда
                Статус = глСП.Т_Тара;
            Иначе    
                Статус = глСП.Т_Купленный;
                Если ПустоеЗначение(Склад) = 0  Тогда
                    Если Склад.РозничныйСклад = 1 Тогда
                        Статус = глСП.Т_ВРознице;
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;  
    ИначеЕсли ВидТМЦ=Перечисление.ВидыТМЦ.Материал Тогда
        Статус = глСП.ЗначениеПоИдентификатору("М_"+Номенклатура.ВидНоменклатуры.Идентификатор());
    Иначе // продукция или полуфабрикаты    
        Статус = глСП.ЗначениеПоИдентификатору(ВидТМЦ.Идентификатор());
    КонецЕсли;
                                                              
    Возврат Статус;
    
КонецФункции // глПолучитьСтатусПартииПрихода()
10 Builder
 
14.08.17
11:48
ИначеЕсли (ПустоеЗначение(ВидТМЦ))=1 Тогда
Сообщить("АААААА, не заполнен ВИД ТМЦ!!!!!");
Иначе
        Статус = глСП.ЗначениеПоИдентификатору(ВидТМЦ.Идентификатор());
11 san4ez1008
 
14.08.17
12:13
хм..странно...в коде указал Док.Номенклатура.ВидСтатус = Перечисление.ВидыТМЦ.Товар;
в отладчике ТаблНоменклатуры.ВидСтатус =
ТаблНоменклатуры.Номенклатура = Товары в ассортименте
ТаблНоменклатуры.Вид = Товар (пр. ТМЦ)
12 san4ez1008
 
14.08.17
12:17
а при проведении такого же документа только скопированного ТаблНоменклатуры.ВидСтатус = Товар
ТаблНоменклатуры.Номенклатура = Товары в ассортименте
ТаблНоменклатуры.Вид = Товар (пр. ТМЦ)
13 Builder
 
14.08.17
12:52
<хм..странно...в коде указал Док.Номенклатура.ВидСтатус = Перечисление.ВидыТМЦ.Товар; >
Зачет! Пиши еще!
14 HawkEye
 
14.08.17
13:14
(0) Если это ТиС, то ВидТМЦ - это реквизит ВидСтатус документа ВводОстатковТМЦ...

при интерактивном вводе или копировании, срабатывает:
    НазначитьТип("ВидСтатус", "Перечисление.ВидыТМЦ");
    ВидСтатус    = Перечисление.ВидыТМЦ.Товар;
    


при программном создании, криворукий программист ес-сно этого не учел....
15 HawkEye
 
14.08.17
13:15
+14 если это КАК в ТиС
16 san4ez1008
 
14.08.17
14:51
(14) это не ТиС, это комплексная
17 san4ez1008
 
14.08.17
15:11
странно вот еще что..
http://s019.radikal.ru/i637/1708/c6/7904912e6c6c.png
18 Злопчинский
 
14.08.17
15:12
(16) комплексная в торговой части такая же как ТиС
19 san4ez1008
 
14.08.17
15:15
так я таки не понял, что нужно сделать, чтобы задать явно в новом программно созданном документе видтмц?
20 HawkEye
 
14.08.17
15:15
(17) что тут странного?
21 HawkEye
 
14.08.17
15:16
(19) пригласить специалиста, заплатить денег.
22 san4ez1008
 
14.08.17
15:21
(21) вот ты как специалист дай правильное направление и скажи, что я делаю не так, чтобы у меня таких вопросов больше не возникало
23 san4ez1008
 
14.08.17
15:22
+ (22) направление не в поиске специалиста а в правильном написании кода
24 HawkEye
 
14.08.17
15:23
(22) в (14) русским по белому написано... какая именно буква вызывает затруднение?
25 san4ez1008
 
14.08.17
15:25
(24) итак я не с документом ВВодОстатковТМЦ работаю
26 HawkEye
 
14.08.17
15:26
(25) что это принципиально меняет?
27 san4ez1008
 
14.08.17
15:35
(26) ну то что мне этот документ не нужен, а в документе возвратотпокупателя это реквизит ТЧ, который должен брать значение из карточки ТоварыВАссортименте,но по каким-то причинам его не подхватывает, я и прошу подсказать, что не так
28 HawkEye
 
14.08.17
15:38
(27) подхватывают в другом месте.
все именно так как написано, ты реквизит не заполняешь - система тебе говорит, что он пустой.
29 san4ez1008
 
14.08.17
15:40
Док.Номенклатура.ВидСтатус = Перечисление.ВидыТМЦ.Товар;
а здесь тогда что не так? или надо
Док.Номенклатура.ВидСтатус = Док.Номенклатура.Вид?
30 HawkEye
 
14.08.17
15:46
(29) здесь не так:
Док.Номенклатура.ВидСтатус

во первых, потому что нельзя записывать через точку
во вторых, видСтатус - реквизит документа, а не номенклатуры.
31 san4ez1008
 
14.08.17
15:52
(30) а как записывать? оО на скрине видстатус-реквизит ТЧ
32 san4ez1008
 
14.08.17
16:01
вот я написал
        Док.ВидСтатус = Перечисление.ВидыТМЦ.Товар;

и та же ошибка, значени пустое у реквизита
33 Злопчинский
 
14.08.17
16:06
(32) стукнись в скайп Zlopun и подготовь удаленку по тиму
34 HawkEye
 
14.08.17
16:08
(32) в (14) же написано... НазначитьТип....
35 Злопчинский
 
14.08.17
16:11
(32) Потому что тебе в лом открыть типовую конфигурацию и открыть форму документа Возврат От Покупателя и тупо контекстным поиском найти вхождения строки "Вид Статус"
..это же клюшки! они же в виде типовых конфигураций - обозримы и легко читаются (в отличие от монструозного снеговика)
36 Злопчинский
 
14.08.17
16:12
... проверка грамотности задолбала.
она не знает кучу слов и не пропускает сообщения...
37 san4ez1008
 
14.08.17
16:13
(34) блть,сработало..спасибо за помощь безграмотному(( на снеговика вообще не представляю как буду переходить, в скором времени вроде планируем, а там почти все наработки придется переписывать, что в ТиС писали для точек((
38 Злопчинский
 
14.08.17
16:19
(37) да я вот тоже в таких непонятках...
куча всякого что в клюшках дописано - в УТ уже есть... но остальное - надо разбираться... спецов по УТ вменяемых найти - мало где... все самим придется
39 HawkEye
 
14.08.17
16:20
(37) (38) глаза бояться руки делают.
40 Злопчинский
 
14.08.17
16:28
(39) да не вопрос.. лишь бы платили...
41 san4ez1008
 
14.08.17
16:29
(40) сколько Вы работаете программистом 1С?
42 Злопчинский
 
14.08.17
16:33
(41) прогом именно 1С - лет 18
43 san4ez1008
 
14.08.17
16:34
(42) зарплата соответствует стажу? я например год всего работаю, из них 1С месяцев 10 только, считаю, что еще нихрена не знаю
44 HawkEye
 
14.08.17
17:06
(40) ну так-то да

(43) так ты и не знаешь )))
45 Злопчинский
 
14.08.17
17:08
(43) да фиг его знает... скорее всего нет - ибо я и задачи бизнес-аналитика выполняю и "переводчиком" между разными подразделениями ;-) но вообще - неплохо, хватает мне. но бизнес-аналитиком и переводчиком - перестал сейчас эти функции выполнять, ибо нех.