Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

ТЗ Свернуть(). Я что-то не понимаю, метод Свернуть?

ТЗ Свернуть(). Я что-то не понимаю, метод Свернуть?
Я
   егаис
 
25.10.16 - 21:04
Функция ПолучитьДанные(ПолучениеДанныхИзОбработки = Ложь, НомерТаблицы = 8, СоздаватьХарактеристики = Ложь, СписокИД = Неопределено) Экспорт
    
    Если ТСД.КодМодели = "ATOLMLD" Тогда
        ТаблицаТоваров = ПолучитьДанныеИзТСДАТОЛМЛ(ПолучениеДанныхИзОбработки, НомерТаблицы, СоздаватьХарактеристики, СписокИД);
    ИначеЕсли ТСД.КодМодели = "ATOLMLDDOS" Тогда
        Если НомерТаблицы = 8 Тогда
            НомерТаблицы = 3;
        КонецЕсли;          
        
        ТаблицаТоваров = ПолучитьДанныеИзТСДАТОЛМЛДОС(ПолучениеДанныхИзОбработки, НомерТаблицы, СписокИД);
    ИначеЕсли ТСД.КодМодели = "CLV_MBS" Тогда
        ДиалогФыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
        ДиалогФыбораФайла.Фильтр = "Таблиа (*.csv)|*.csv";
        ДиалогФыбораФайла.Заголовок = "Выберите файл";                                         
        ДиалогФыбораФайла.ПредварительныйПросмотр = Истина;
        ДиалогФыбораФайла.ИндексФильтра = 0;
        Если ДиалогФыбораФайла.Выбрать() Тогда
            ПолноеИмяФайла = ДиалогФыбораФайла.ПолноеИмяФайла;
            
            ТаблицаТоваров = Новый ТаблицаЗначений;
            ТаблицаТоваров.Колонки.Добавить("ШтрихКод"        , Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(60)));
            ТаблицаТоваров.Колонки.Добавить("АлкоКод"         , Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(20)));
            ТаблицаТоваров.Колонки.Добавить("АкцизнаяМарка"   , Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(100)));
            ТаблицаТоваров.Колонки.Добавить("СерияНомер"      , Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(70)));
            
            ТаблицаТоваров.Колонки.Добавить("Номенклатура"    , Новый ОписаниеТипов("СправочникСсылка.ЕГАИС_Номенклатура"));
            ТаблицаТоваров.Колонки.Добавить("НоменклатураУчет", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
            ТаблицаТоваров.Колонки.Добавить("ХарактеристикаНоменклатуры", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
            ТаблицаТоваров.Колонки.Добавить("ЕдиницаИзмерения", Новый ОписаниеТипов("СправочникСсылка.ЕдиницыИзмерения"));
            ТаблицаТоваров.Колонки.Добавить("Количество"      , Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)));
            
            //обработаем файл

            ЗагружаемыйФайл = Новый ТекстовыйДокумент;
            ЗагружаемыйФайл.Прочитать(ПолноеИмяФайла);
            
            Для НомерСтроки = 2 по ЗагружаемыйФайл.КоличествоСтрок() Цикл

                Состояние("Обрабатывается "+Строка(Формат(?(ЗагружаемыйФайл.КоличествоСтрок()=0,0,((100*НомерСтроки)/                                                                                                ЗагружаемыйФайл.КоличествоСтрок())),"ЧЦ=3; ЧДЦ=0"))+" %");
                ОбработкаПрерыванияПользователя();//указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break


                // получить стрoку с указанным номером и преобразуем её в массив

                Строка = ЗагружаемыйФайл.ПолучитьСтроку(НомерСтроки);
                МассивЗначений = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Строка,";")// процедура из типовой конфигурации, разбивает строку в массив по разделителям

                
                //проверим номенклатуру

                ШтрихКод = МассивЗначений[0];
                АлкоКод = МассивЗначений[13];
                ТаблицаНоменклатурыУчет = НайтиТоварПоШтрихкоду(ШтрихКод);    
                Если ТаблицаНоменклатурыУчет.Количество() > 1 Тогда
                    Сообщить("По штрих коду: " + ШтрихКод + ", найдено более одной позиции! Внесите изменения вручную!");
                    Продолжить;
                КонецЕсли;    
                НоменклатураУчет = ТаблицаНоменклатурыУчет[0].Номенклатура;
                
                НоменклатураЕГАИСИзТСД = Справочники.ЕГАИС_Номенклатура.НайтиПоКоду(АлкоКод);
                
                //проверка на наличие соответсвия 

                ТаблицаНоменклатурыЕГАИС = ОбменУТМ.ПолучитьНоменклатуруЕГАИСПоНоменклатура(НоменклатураУчет);
                НайденнаяСтрока = ТаблицаНоменклатурыЕГАИС.Найти(НоменклатураЕГАИСИзТСД, "ЕГАИС_Номенклатура");
                Если НайденнаяСтрока = Неопределено Тогда
                    Сообщить("Отсутствует соответствие между товаром " + НоменклатураУчет + " и алкокодом " + АлкоКод + "! Внесите изменения вручную!");
                    Продолжить;
                КонецЕсли;
                
                НоваяСтрока = ТаблицаТоваров.Добавить();
                НоваяСтрока.ШтрихКод = ШтрихКод;
                НоваяСтрока.АлкоКод = АлкоКод;
                НоваяСтрока.АкцизнаяМарка = МассивЗначений[14];
                НоваяСтрока.СерияНомер = МассивЗначений[15];
                
                НоваяСтрока.ХарактеристикаНоменклатуры = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();
                НоваяСтрока.Номенклатура = НоменклатураЕГАИСИзТСД;
                НоваяСтрока.НоменклатураУчет = НоменклатураУчет;
                НоваяСтрока.ЕдиницаИзмерения = НоменклатураУчет.БазоваяЕдиницаИзмерения;
                НоваяСтрока.Количество = Число(МассивЗначений[6]);
                
            КонецЦикла;
        КонецЕсли;
    Иначе
        ТаблицаТоваров = ПолучитьДанныеИзТСД(ПолучениеДанныхИзОбработки);
    КонецЕсли;
    
    Возврат ТаблицаТоваров;
    
КонецФункции


При определенных условиях необходимо свернуть таблицу
ТаблицаТоваров.Свернуть("Номенклатура", "Количество");
Получаем 
ТаблицаТоваров.свернуть("Номенклатура", "Количество")    {(1)}: Обращение к процедуре объекта как к функции (свернуть)    

Что за нафиг?
 
 
   егаис
 
1 - 25.10.16 - 21:06
рабочий блок после
   ИначеЕсли ТСД.КодМодели = "CLV_MBS" Тогда
   МимохожийОднако
 
2 - 25.10.16 - 21:07
Буква С латинская? )) Отладчик что показывает?
   егаис
 
3 - 25.10.16 - 21:08
да нифига, все верно.
отладчик и показывает ошибку
   Artful Den
 
4 - 25.10.16 - 21:12
ТЗ1 = ТаблицаТоваров.Скопировать();
ТЗ1.Свернуть("Номенклатура", "Количество"); ?
   Сияющий Асинхраль
 
5 - 25.10.16 - 21:13
Проверь для начала, что ТаблицаТоваров - это на самом деле таблица значений, скорее всего, при каких-то условиях у тебя делается, что-то отличное от ТЗ
   егаис
 
6 - 25.10.16 - 21:20
   егаис
 
7 - 25.10.16 - 21:20
эпик
   Сияющий Асинхраль
 
8 - 25.10.16 - 21:23
(6) Показал бы тогда и колонки ТЗ
   ВРедная
 
9 - 25.10.16 - 21:24
Вот тут

                МассивЗначений = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Строка,";"// процедура из типовой конфигурации, разбивает строку в массив по разделителям



Действительно нет точки с запятой в конце?
   ВРедная
 
10 - 25.10.16 - 21:25
Ощущение, что у тебя где-то присваивание не завершилось...
 
 Рекламное место пустует
   егаис
 
11 - 25.10.16 - 21:30
Начинаю верить в чудеса...
Перегрузил конфигуратор, теперь не падает с ошибкой, все сворачивается, но тем не менее если написать в отладке свернуть, пишет ошибку.
   КнОпка
 
12 - 25.10.16 - 21:32
(11) а ТЗ.количество() что говорит?

похоже кеш пора чистить. это не чудеса а проделки лешего))
   Cyberhawk
 
13 - 25.10.16 - 21:34
Автор дятел? Метод "Свернуть" для ТЗ - это процедура, а не функция. Через табло выполнять процедуры нельзя.
   егаис
 
14 - 25.10.16 - 21:35
(13) точно, спасибо, добрый человек
   Cyberhawk
 
15 - 25.10.16 - 21:38
(14) Заработался?
   КнОпка
 
16 - 25.10.16 - 21:39
(13) у него и при выполнении кода ошибка выходит
   Cyberhawk
 
17 - 25.10.16 - 21:42
(16) Гонишь, давай пруф
   КнОпка
 
18 - 25.10.16 - 21:50
(17) на картинке в (6)
Не знаю только зачем стоп поставил на этой строке и начал проверять код в табло))
   Cyberhawk
 
19 - 25.10.16 - 22:10
(18) Ты видишь то, что хочешь видеть. Кончай вещества принимать.
   bolder
 
20 - 25.10.16 - 23:11
(18) На картинке - ошибка в ТАБЛО а не в коде.Первоклассники))

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