Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Один и тот же код не работает на некоторых компьютерах

v7: Один и тот же код не работает на некоторых компьютерах
Я
   Mafiozaa
 
03.03.21 - 02:30
Доброго времени суток, суть проблемы: есть написанный документ, у меня работает в тестовой базе все корректно все хорошо, обновляю боевую базу, тот для кого этот документ создавался, сегодня работает все хорошо, завтра заходит у него Поле Агрегатного объекта не обнаружено. Повторюсь
01.03.21 - У него работает все как должно
02.03.21 - Не работает как должно (при этом ничего не изменялось)
03.03.21 - Заного скидываю свой мдшник (рабочий) обновляю, при объеденении, изменения кода не было
Куда смотреть куда копать?)
   Mafiozaa
 
1 - 03.03.21 - 02:34
Код для наглядности:

    Перем ИмяФайла, КаталогФайла;
    Перем НомерУПД;
    Перем ТЗКоды, ТЗШкоды;
    Перем ТекущаяПозиция;
    Перем ПризнакУчастника, ФорматДата;
    Перем Штрихкод;
    
    Процедура ПриОткрытии();    
    КонецПроцедуры
    
    
Функция ЗаполнениеПоДокументуОснованию()
    
    Если ДокОснование.Выбран()=0 Тогда
        Возврат "Документ - основание не выбран!";
    КонецЕсли;
    
    ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений");
    ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента);
    
    // очищаем наш документ

    УдалитьСтроки();
    
    СпрМ = СоздатьОбъект("Справочник.НоменклатураМаркировка");
    СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
    
    ТаблицаДокумента.ВыбратьСтроки();
    Пока ТаблицаДокумента.ПолучитьСтроку()=1 Цикл
        Для инд = 1 По ТаблицаДокумента.Количество Цикл
            Если СпрМ.НайтиПоКоду(ТаблицаДокумента.Номенклатура.Код) = 1 Тогда
                НоваяСтрока();
                Номенклатура = ТаблицаДокумента.Номенклатура;
                КодТовара = СокрЛП(ТаблицаДокумента.Номенклатура.БазоваяЕдиница.ШтрихКод);
                Цена = ТаблицаДокумента.Цена;
                СтавкаНДС = ТаблицаДокумента.СтавкаНДС;
                СуммаНДС = Цена * (0.2);
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;// по строкам основания

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


Процедура ВводНаОсновании(ДокОсн)
    ДокОснование = ДокОсн;                                          
    Фирма = ДокОсн.Фирма;
    Контрагент = ДокОсн.Контрагент;
    Автор = ДокОсн.Автор;
    ЗаполнениеПоДокументуОснованию();
    НашИНН = ДокОсн.Фирма.ЮрЛицо.ИНН;
    КонтрИНН = Контрагент.ЮрФизЛицо.ИНН;
    ПризнакУчастника = ДокОсн.ПризнакУчастника;
    Если ПризнакУчастника = 1 Тогда                                          
        ПризнакУчастника = "Да";
    Иначе
        ПризнакУчастника = "Нет";
    КонецЕсли;
    ФорматДата = Формат(ТекущаяДата(), "ДДДММГГГГ");
КонецПроцедуры

Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
    // Процедура разбирает штрих-код, считанный сканером

    // и заполняет строки накладной

    Перем Упаковка,ТекКоличество, Спецификация;
    Перем ВремТовар, ВремЕдиница, ВремКоличество, ВремЦена;
    
    Перем СтрокаВозврЦена;
    Если Событие = "BarCodeValue" Тогда
        Штрихкод = СокрЛП(Данные);
        стр = 0;
        Если глПолучитьТоварПоШтрихкоду(Штрихкод, ВремТовар, ВремЕдиница, ВремКоличество) = 1 Тогда
            Если ТЗШКоды.НайтиЗначение(ВремТовар, стр, "Номенклатура") = 1 Тогда;
                АктивизироватьСтроку(стр);
                Для стр = 0 По КоличествоСтрок() Цикл
                ПолучитьСтрокуПоНомеру(стр);
                    Если (ПустоеЗначение(КодМаркировки) = 0) И (ВремТовар = Номенклатура) Тогда
                        АктивизироватьСтроку(стр + 1);
                    КонецЕсли;
                КонецЦикла;                                                           
            КонецЕсли;
        Иначе
            ИтогТЗ = СоздатьОбъект("ТаблицаЗначений");
            ВыгрузитьТабличнуюЧасть(ИтогТЗ);
            Если ИтогТЗ.НайтиЗначение(Штрихкод, стр, "КодМаркировки") = 1 Тогда
                Предупреждение("Данный код маркировки, уже был проверен, просканируйте следующий код маркировки");
            Иначе
                КодМаркировки = Штрихкод;
            КонецЕсли;
        
        КонецЕсли;

        глСканерПосылкаДанных(1);
    Иначе
        глОбработкаВнешнегоСобытия(Источник, Событие, Данные);    
    КонецЕсли;

КонецПроцедуры// ОбработкаВнешнегоСобытия()


Процедура Открыть()
    
    ТЗКоды = СоздатьОбъект("ТаблицаЗначений");
    ВыгрузитьТабличнуюЧасть(ТЗКоды);
    
    ИмяФайла = "Отгрузка.csv";
    КаталогФайла = "\\Server4\Обменник\ОтгрузкаМаркировка\";
    ПолноеНаименованиеФайла = КаталогФайла + ИмяФайла;
    РабочийСтол = "C:\Users\Dmitriy\Desktop\";    
    НомерУПД = 123;
    Файл = СоздатьОбъект("Текст");
    Файл.ДобавитьСтроку("ИНН отправителя,ИНН получателя,ИНН собственника,Дата передачи товара,Номер первичного документа,Дата первичного документа,Вид оборота товаров,Причина вывода из оборота, Дата вывода из оборота,Идентификатор гос.контракта,Отгрузка неучастнику,Версия");
    Файл.ДобавитьСтроку(НашИНН + "," + КонтрИНН + "," + НашИНН + "," + ФорматДата + "," + НомерУПД + "," + ФорматДата + "," + "Продажа" + ",,,," + ПризнакУчастника + "," + "4");
    Файл.ДобавитьСтроку("Параметры товаров");
    Файл.ДобавитьСтроку("КИ,КИТУ,Цена за единицу,Сумма НДС");
    Для А = 1 По ТЗКоды.КоличествоСтрок() Цикл
        ПолучитьСтрокуПоНомеру(А);
        ТЗКоды.ПолучитьСтрокуПоНомеру(А);     
        SGTIN = Сред(ТЗКоды.КодМаркировки, 1, 31);
        НайденныйСимвол = Найти(SGTIN, """");
        Файл.ДобавитьСтроку("""" + СтрЗаменить(СокрЛП(SGTIN),"""","""""") + """" + ",," + Цена + "," + СуммаНДС);
    КонецЦикла;
    Попытка
        Файл.Записать("\\Server4\Обменник\ОтгрузкаМаркировка\Отгрузка.csv");
    Если ФС.ВыбратьФайл(0,ИмяФайла,КаталогФайла,,"Все файлы (*.csv) |*.csv")=1 Тогда 
         ЗапуститьПриложение("notepad.exe" + " " + ПолноеНаименованиеФайла);;
     КонецЕсли;
        
        //ФС.КопироватьФайл(ПолноеНаименованиеФайла,РабочийСтол, 1);

        //ФС.УдалитьФайл(ПолноеНаименованиеФайла);

    Исключение
        Предупреждение("Файл не сформирован! Проверьте правильность наполнения таблицы"); 
    КонецПопытки
КонецПроцедуры   

Процедура Записать()
    Записать();
КонецПроцедуры


Ругает вот эту строку
ТЗШКоды.НайтиЗначение(ВремТовар, стр, "Номенклатура")
   dedmoroz777
 
2 - 03.03.21 - 04:21
У тебя ТЗШкоды создается если только документ введен на основании. Иначе это не тз вовсе.
   Mafiozaa
 
3 - 03.03.21 - 04:28
(2) Воот оно в чем дело, Михалыч, да он запускает не с основания, а просто записанный, все понял. спасибо)
   Злопчинский
 
4 - 03.03.21 - 21:12
(1) внезапно дело не в компах а в кривых руках... ;-)
   victuan1
 
5 - 04.03.21 - 04:50
(4) Так ты все темы ТС почитай. Они все ведут к твоему выводу про "руки".
   Mafiozaa
 
6 - 04.03.21 - 05:00
(5) (4) Ребят, ну я же не спорил что в моих руках дело, просто странно для меня было, когда вчера человек работал все хорошо, а сегодня звонит и говорит что что то не то
   Mafiozaa
 
7 - 04.03.21 - 05:08
(5) Ну извини, что я в 1с не столько, сколько ты на этом форуме
   Mikeware
 
8 - 04.03.21 - 08:21
(7) "Плох тот чайник, который не мечтает стать самоваром"©
   Kigo_Kigo
 
9 - 04.03.21 - 08:43
(8) Да не, скорее, не ошибается тот, кто ничего не делает...
   MWWRuza
 
10 - 04.03.21 - 09:53
Не, ну человек ошибку понял, после первой подсказки.
Значит не даром написал, думаю, на будущее будет внимательнее, и такого больше не напишет.
На ошибках учатся, все когда-то начинали....
   Mikeware
 
11 - 04.03.21 - 10:20
(9) и это тоже.
Но просто "время" - это далеко не критерий (доказано Мыколой Балановым, Юлией Борщ (уж простите, забыл все их ники), Мисти, и незабвенным falselight).

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.