Имя: Пароль:
1C
1С v8
Как в ТаблицаЗначний пронумеровать строки ?
Ø (Волшебник 04.08.2017 11:13)
0 Paracoccidioidomicos
 
04.08.17
05:47
Со сканера загружается номенклатура, сделал
Процедура ТПРеализацияПриПолученииДанных(Элемент, ОформленияСтрок)
     сч = 0 ;
    Для каждого ОформлениеСтроки  Из  ОформленияСтрок Цикл
        
        Сч = Сч + 1;
        ОформлениеСтроки.Ячейки.НомерСтроки.УстановитьТекст( "" + Сч);
    
    КонецЦикла;
КонецПроцедуры

У всех строк "1"
1 Рэйв
 
04.08.17
05:55
да сделай ты колонку "НомерСтроки" и не мучайся.Это же просто тз
2 Paracoccidioidomicos
 
04.08.17
05:56
(1) Сделал и что? пустая
3 Paracoccidioidomicos
 
04.08.17
05:56
(1) Если ПКМ - Добавить, то добавляется стркоа и НомерСтроик = 1
2
3
4
5

А если загружаю со сканера, то они как бы одновременно загружаются и все 1
1
1
1
1
4 Paracoccidioidomicos
 
04.08.17
05:58
сори за опечатки, сплю чет
5 Paracoccidioidomicos
 
04.08.17
06:00
обычные формы
6 Рэйв
 
04.08.17
06:08
нормальную колонку добавь , в тз источник.
И нумеруй при добавлении строк. Если у юзеров нет возможности менять порядок строк, то этого хватит
7 Paracoccidioidomicos
 
04.08.17
06:28
(6) В мысле нормальную ?
8 1dvd
 
04.08.17
06:30
ТПРеализация  - Это таблица значений или что?
9 Paracoccidioidomicos
 
04.08.17
06:32
(8) Да
10 1dvd
 
04.08.17
06:35
(9) Какая религия запрещает добавить в неё колонку и пронумировать её?
11 h-sp
 
04.08.17
06:37
(3) ПриПолученииДанных  не читает всю таблицу. Она по частям.
12 Paracoccidioidomicos
 
04.08.17
06:38
(10) Ну я так и сделал
13 Рэйв
 
04.08.17
06:39
(12)Если ты балуешься через ОформлениеСтрок, то у меня подозрение, что ты добавил колонку на форму в в Таб поле, а не в тз
14 Рэйв
 
04.08.17
06:39
а это не одно и то же
15 Paracoccidioidomicos
 
04.08.17
06:41
(14) ТЗУ.Колонки.Добавить("НомерСтроки", Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(5)));
16 Рэйв
 
04.08.17
06:43
(15)Тогда зачем тебе танцы с оформлениением строк? Один раз пробежись по тз и проставь нумерацию
17 Рэйв
 
04.08.17
06:44
или ставь номер сразу при добавлении строки
18 Рэйв
 
04.08.17
06:46
А вообще, если это обработка, то сделай там таб часть, а не ТЗ. У таб части номер строки поддерживается на уровне платформы
19 Paracoccidioidomicos
 
04.08.17
06:47
(18) Обработка и мне нужно только нумерацию сделать
переделывать ничо незя )
20 1dvd
 
04.08.17
06:47
(19) тебе уже ответили
21 Paracoccidioidomicos
 
04.08.17
06:49
(20) ну дак нумерует 1
1
1
1
1
22 1dvd
 
04.08.17
06:51
(21) не делай это в ПриПолученииДанных. Он там не всю таблицу обрабатывает
23 Рэйв
 
04.08.17
06:51
(21)ну если ты упорно хочешь нумеровать именно через оформление, то флаг в руки и барабан на шею:-) Мучайся дальше.
24 Paracoccidioidomicos
 
04.08.17
06:52
(22) А где делать
25 1dvd
 
04.08.17
06:52
(24) там где она заполняется
26 DrZombi
 
гуру
04.08.17
07:05
Никто не удивился, что ТС использовал для нумерации "Строку", а не "Число" :)
27 Рэйв
 
04.08.17
07:09
(26)ТС судя по всему еще тот оригинал. Хорошо хоть не перечисление заточил под это дело:-)
28 Имитация работы
 
04.08.17
07:27
(0) Если источник данных - таблица значений, то из текущего оформления строки надо получить данные (типа строка тз) и методом индекс тз узнать ее порядковый номер внутри таблицы
29 Paracoccidioidomicos
 
04.08.17
08:44
да я сделал число уже
да всё равно криво нумерует
30 DrZombi
 
гуру
04.08.17
09:01
(29) Криво, это как? :)
31 Paracoccidioidomicos
 
04.08.17
09:03
(30) 1
1
1
1
1
1
32 DrZombi
 
гуру
04.08.17
09:04
+ Вам же писали, добавить просто колонку в вашу ТЗ и тупо её заполнять.
И перезаполнять, если пользователь пересортировал вашу таблицу.

Если вы возжелали, что бы нумерация была автоматизирована, то ваша ТЗ должна быть объявлена в табличной части обработки, но это уже не будет ТЗ, а простое Таблица
33 DrZombi
 
гуру
04.08.17
09:04
(31) Руки через ЖП...
Гду вы заполняете нумерацию? :)
34 Paracoccidioidomicos
 
04.08.17
09:06
(33) где ТЗ заполняется
35 Paracoccidioidomicos
 
04.08.17
09:10
Покажите код рабочий автонумерации тз ?
36 _stay true_
 
04.08.17
09:20
(35) Зачем колонку строкового типа добавил? Добавить число, видимо, запрещает пастафарианство?
37 Paracoccidioidomicos
 
04.08.17
09:24
(36) (29)
38 _stay true_
 
04.08.17
09:25
(37) Коротко, но ясно :)

Покажи код. Я ванговать не умею.
39 aleks_default
 
04.08.17
09:26
(38)А вдруг вы сопрете его гениальное творение?
40 aleks_default
 
04.08.17
09:28
(38) Вот сидите там за монитором, хитренько так улыбаетесь и ручки потираете...
41 Paracoccidioidomicos
 
04.08.17
09:34
сч=1;
Для каждого строка из ТЗУ Цикл
строка.номерстроки = сч;
...
.
.
.
.
.
сч=сч+1;
конеццикла
42 aleks_default
 
04.08.17
09:37
где-то вот здесь
...
.
.
.
.
.
сч переопределяется
43 Paracoccidioidomicos
 
04.08.17
09:38
нет
44 DrZombi
 
гуру
04.08.17
09:39
(41) Зачем вы сч увеличиваете в конце?
Что за мания, а если у вас там Продолжить отрабатывает?
...срочно сч = сч + 1 уместить в начало, а сч = 0 :)
45 DrZombi
 
гуру
04.08.17
09:39
(43) Полностью код покажи, мы умеет читать, при желании, не беспокойся, кажи свою пс... :)
46 DrZombi
 
гуру
04.08.17
09:40
+(44) "что за мания"... просто на работе такое же сейчас переписывал :)
47 Paracoccidioidomicos
 
04.08.17
09:41
всё, хз чё сделал, теперь не заполняется
48 Имитация работы
 
04.08.17
09:43
(47) Тяжек труд программиста...
49 zvial
 
04.08.17
09:46
(47) Сначала сделают не разобравшись в проблеме. А потом в разговорах в курилке - "Целый день танцы с бубнами из-за нумерации строк таблицы". Вот он уровень, чо.
50 _stay true_
 
04.08.17
09:47
(48) Тяжела и неказиста
     Жизнь IT-специалиста...
51 Paracoccidioidomicos
 
04.08.17
09:47
(49) я просто учусь, всё нормально
52 AlexMee
 
04.08.17
09:48
(0) а = 0;
    Для Каждого Результат Из ТаблицаИстории Цикл

            а = а + 1;
            Результат.НомерСтроки=( "" + а);
            КонецЕсли;
так сделай..
53 AlexMee
 
04.08.17
09:50
(52) КонецЕсли убери
54 Paracoccidioidomicos
 
04.08.17
09:52
пусто всё равно
55 Любопытная
 
04.08.17
09:53
(54) ты код весь покажешь уже или нет?
56 AlexMee
 
04.08.17
09:53
пришли на почту.
57 DrZombi
 
гуру
04.08.17
09:54
(52) У него там теперь Число :)
58 Любопытная
 
04.08.17
09:54
Для каждого строка из ТЗУ Цикл
строка.номерстроки = ТЗУ.Индекс(строка)+1;
...
КонецЦикла;

И не нужен счетчик
59 Любопытная
 
04.08.17
09:55
Если конечно эта самая ТЗУ вообще заполнена в этот момент
60 Paracoccidioidomicos
 
04.08.17
10:10
61 Paracoccidioidomicos
 
04.08.17
10:11
62 Любопытная
 
04.08.17
10:12
(60) ПОКАЖИ ВЕСЬ КОД ЦЕЛИКОМ!!!
Блин. Хочется побить(
63 _stay true_
 
04.08.17
10:19
(60)(61) Видимо, помощь тебе не нужна.
(62) Глубокий вдох. Считаем до 10. Медленный выдох. Повторять до полной аннигиляции ТС.
64 Paracoccidioidomicos
 
04.08.17
10:20
ТЗУ = ЗагрузитьИзФайла();
              сч=0;                
    Для каждого строка из ТЗУ Цикл
        сч=сч+1;
                            строка.НомерСтроки=сч;    
            

                                                
        
        Номенклатура26     = ПолучитьНоменклатуруПоШК(строка.КодТовара,Число(строка.Предприятие));
        Если Номенклатура26 = Неопределено Тогда
            Продолжить;    
        КонецЕсли;
        строка.номерстроки = ТЗУ.Индекс(строка)+1;
        ВесПродукции26     = строка._ВесТовара;
        ДатаПродукции26 = строка.ДатаВыработки;
        ВесТары26         = строка._ВесТары;
        Штрихкод        = строка.Штрихкод;        
        Если (Найти(Номенклатура26.ЕдиницаИзмеренияПоУмолчанию.Наименование, "кг") > 0) или (Номенклатура26.ЕдиницаИзмеренияПоУмолчанию.Наименование = "") Тогда
            Количество26 = строка.ДопКоличество;
        Иначе
            Количество26 = строка.Количество;
        КонецЕсли;
        ДопКоличество26    = строка.ДопКоличество;

        ТЗТара = _Производство.ЭтоТара(Номенклатура26);
        Если ТЗТара.Количество() > 0  Тогда
            //это тара
            ДобавитьТоварТара(Номенклатура26,"Тара",0,ВесТары26,?(ТЗТара[0].УчетТарыВПроводках,1,0),0,0,Штрихкод,);    
        Иначе
            //это товар просто или товар+тара из спецификации
            Если ВесТары26>0 Тогда
                //товар+тара
                ДобавитьТоварТара(Номенклатура26,"Товары",ВесПродукции26,ВесТары26,Количество26,ДопКоличество26,1,Штрихкод,ДатаПродукции26);
                //учитываем тару, в которой производится отгрузка из Свойства номенклатуры - АРМ "Отгружается в этой таре""
                //вес нулевой
                Запрос = Новый Запрос;
                Запрос.Текст = "ВЫБРАТЬ
                               |    ЗначенияСвойствОбъектов.Значение,
                               |    ВЫБОР
                               |        КОГДА Тара.УчетТарыВПроводках ЕСТЬ NULL
                               |            ТОГДА ЛОЖЬ
                               |        ИНАЧЕ Тара.УчетТарыВПроводках
                               |    КОНЕЦ КАК УчетТарыВПроводках
                               |ИЗ
                               |    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
                               |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                               |            _Тара.Номенклатура КАК Номенклатура,
                               |            _Тара.УчетТарыВПроводках КАК УчетТарыВПроводках
                               |        ИЗ
                               |            Справочник._Тара КАК _Тара) КАК Тара
                               |        ПО ЗначенияСвойствОбъектов.Значение = Тара.Номенклатура
                               |ГДЕ
                               |    ЗначенияСвойствОбъектов.Свойство = &Свойство
                               |    И ЗначенияСвойствОбъектов.Объект = &Номенклатура";
                Запрос.УстановитьПараметр("Свойство",    ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("Р0000000112"));     //Свойства объектов
                Запрос.УстановитьПараметр("Номенклатура",    Номенклатура26);
                ВыбТара = Запрос.Выполнить().Выгрузить();
                Если ВыбТара.Количество()>0 Тогда
                    ДобавитьТоварТара(ВыбТара[0].Значение,"Тара",0,0,?(ВыбТара[0].УчетТарыВПроводках,1,0),0,0,Штрихкод,)
                КонецЕсли;
            Иначе
                //товар
                ДобавитьТоварТара(Номенклатура26,"Товары",ВесПродукции26,ВесТары26,Количество26,ДопКоличество26,1,Штрихкод,ДатаПродукции26);
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
             
    //Объединяем данные и записываем в таблицу реализации Если реализация создается
    ТЗРеалВрем = Новый ТаблицаЗначений;
    
    ТЗРеалВрем =ТПРеализация.Скопировать();
    ТЗРеалВрем.Свернуть("Номенклатура,ДатаВыработки", "Количество,ДопКоличество,_ВесТары,_ВесТовара,КоличествоМест");
    ТЗРеалВрем.Сортировать("Номенклатура,ДатаВыработки");
             
    ТППодготовкаРеализации = ТЗРеалВрем;
    
    Ошибка = "";
    Если ТЗОшибки.Количество()=0 Тогда    
        ЭтаФорма.ЭлементыФормы.ДобавитьВРТУ.Доступность = Истина;
    Иначе
        Для каждого стр из ТЗОшибки Цикл
            Ошибка = Ошибка + Символы.ПС + стр.ОписаниеОшибки;
        КонецЦикла;
        Предупреждение(Ошибка);
    КонецЕсли;
    
    // +Костыль для Эталон продукта
    Если СокрЛП(ЗаказПокупателя.Контрагент.Код) = "Ш06488" Тогда
        ВывестиСписокПоКоробкам();    
    КонецЕсли;
65 Любопытная
 
04.08.17
10:23
Номенклатура26     = ПолучитьНоменклатуруПоШК(строка.КодТовара,Число(строка.Предприятие));
        Если Номенклатура26 = Неопределено Тогда
            Продолжить;    
        КонецЕсли;
66 zvial
 
04.08.17
10:23
(51) Учиться надо осознанно. Книжки почитать. А не тупо тыкать кнопки - на авось получится что-то. Задача то и не задача даже - в школе сложнее задают
67 Любопытная
 
04.08.17
10:24
Ты уверен, что там вообще что-то находится?
68 Paracoccidioidomicos
 
04.08.17
10:25
(67) скрины ТЗУ
69 Любопытная
 
04.08.17
10:27
там еще и запросы в цикле...
70 Любопытная
 
04.08.17
10:29
И ты уверен, что у тебя ТЗУ вообще на форму выводится?
71 Paracoccidioidomicos
 
04.08.17
10:31
(70) Да
72 Paracoccidioidomicos
 
04.08.17
10:31
Через оформление можно сделать нумерацию ?
73 Любопытная
 
04.08.17
10:33
(71) А я сильно сомневаюсь
74 Любопытная
 
04.08.17
10:35
В твоей ТЗУ номенклатуры нет вообще, судя по скрину в (60). И в коде нет ни добавления колонки, ни заполнения ее.
75 Злопчинский
 
04.08.17
10:37
Не верю что в снеговике так раком.
В клюшках достаточно сделать видимой предопределённую системную колонку "номерстроки" и все...
76 Paracoccidioidomicos
 
04.08.17
10:39
(74)
тзУ    =Новый ТаблицаЗначений;
    ТЗУ.Колонки.Добавить("Штрихкод", Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(22)));    
    ТЗУ.Колонки.Добавить("КодТовара", Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(3)));
    ТЗУ.Колонки.Добавить("Количество",    Новый ОписаниеТипов("Число",,Новый КвалификаторыЧисла(15,3)));
    ТЗУ.Колонки.Добавить("ДопКоличество",    Новый ОписаниеТипов("Число",,Новый КвалификаторыЧисла(15,3)));
    ТЗУ.Колонки.Добавить("ДатаВыработки", Новый ОписаниеТипов("Дата",,Новый КвалификаторыДаты()));
    ТЗУ.Колонки.Добавить("_ВесТары", Новый ОписаниеТипов("Число",,Новый КвалификаторыЧисла(10,3)));
    ТЗУ.Колонки.Добавить("_ВесТовара", Новый ОписаниеТипов("Число",,Новый КвалификаторыЧисла(10,3)));    
    ТЗУ.Колонки.Добавить("ИдШК", Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(5)));
    ТЗУ.Колонки.Добавить("Предприятие", Новый ОписаниеТипов("Число",,Новый КвалификаторыЧисла(1,0)));
    ТЗУ.Колонки.Добавить("НомерСтроки", Новый ОписаниеТипов("Число",, Новый КвалификаторыЧисла(10)));
77 Любопытная
 
04.08.17
10:40
(76) Ну и где там колонка Номенклатура?
78 Paracoccidioidomicos
 
04.08.17
10:43
(77) она реквизитом обработки идут
79 Paracoccidioidomicos
 
04.08.17
10:46
(78) а нет(
80 Paracoccidioidomicos
 
04.08.17
10:47
у колонки номенклатура тип справочникссылка.номенклатура
81 zvial
 
04.08.17
10:53
(75) Не раком. Если использовать табличную часть объекта. В ней реквизит НомерСтроки присутствует по-умолчанию. А в созданной программно таблице значений состав реквизитов задается вручную.
ТС не может сделать через табличную часть объекта, видимо потому, что "учится"
82 Paracoccidioidomicos
 
04.08.17
10:54
(81) потому что уже сделано как сделано, не я делал, мне просто нумерацию надо
83 Любопытная
 
04.08.17
10:55
(80) ну потыкай меня носом в то место, где эта колонка в (76)
84 Paracoccidioidomicos
 
04.08.17
11:00
85 Любопытная
 
04.08.17
11:07
(84) при чем тут этот скрин?
86 Волшебник
 
модератор
04.08.17
11:13
Хватит разврата.
Программист всегда исправляет последнюю ошибку.