Имя: Пароль:
1C
 
Добавить колонку в таблицу значений
0 shadow1337
 
10.10.19
19:32
У меня есть таблица значений, в которой есть колонка "Остаток"
Я заношу ее в переменную следующей строкой:

[code]ТЗОстаткиERP_1024 = РаботаСВнешнейБД.ПолучитьТЗОстаткиERPПоВсемИзделиям("1024");[/code]

[img]http://ipic.su/img/img7/fs/TablicaZnachenij.1570724651.png[/img]

Через цикл в ИтоговуюТаблицуЗначений передаются остатки из разных складов. Мне нужно из колонки (столбца) "Остаток" таблицы значений ТЗОстаткиERP_1024 передать все эти значения в ИтоговуюТаблицуЗначений в качестве еще одного столбца. Говоря проще, добавить еще один столбец с остатками:

[code]
ФайлСОстатками.ДобавитьСтроку("Название;Производитель;Артикул;Свободный остаток(Ставрополь);Свободный остаток(Ростов);Свободный остаток(Тверь);Свободный остаток(Самара)");  

Для Каждого Строка ИЗ ИтоговаяТаблицаЗначений Цикл

        ФайлСОстатками.ДобавитьСтроку(Строка.Название + ";" + Строка.Производитель + ";" + Строка.Артикул + ";" + ?(Строка.СвободныйОстаток <> Неопределено, Формат(Строка.СвободныйОстаток, "ЧДЦ=0; ЧГ=0"), Формат(0,"ЧДЦ=2; ЧРД=.; ЧН=; ЧГ=0")) + ";" +
        ?(Строка.СвободныйОстатокРостов <> Неопределено, Формат(Строка.СвободныйОстатокРостов, "ЧДЦ=0; ЧГ=0"), Формат(0,"ЧДЦ=2; ЧРД=.; ЧН=; ЧГ=0")) + ";" +
        ?(Строка.СвободныйОстатокТверь <> Неопределено, Формат(Строка.СвободныйОстатокТверь, "ЧДЦ=0; ЧГ=0"), Формат(0,"ЧДЦ=2; ЧРД=.; ЧН=; ЧГ=0")) + ";" +
        ?(Строка.СвободныйОстатокСамара <> Неопределено, Формат(Строка.СвободныйОстатокСамара, "ЧДЦ=0; ЧГ=0"), Формат(0,"ЧДЦ=2; ЧРД=.; ЧН=; ЧГ=0")));
        КонецЦикла;
    КонецЕсли;
    [/code]
1 Волшебник
 
10.10.19
19:45
говнокод детектед.
2 palsergeich
 
10.10.19
20:05
Ужас какой
3 shadow1337
 
10.10.19
20:12
А можно по делу то?) Как передать столбец из одной таблицы в другую?
4 Волшебник
 
10.10.19
20:25
(3) тут вам не Excel
5 shadow1337
 
10.10.19
21:01
Это понятное дело, но у меня итоговая таблица значений, кстати, как раз в эксель выгружается. Какие функции/методы/свойства я могу использовать, чтобы получить данные из ТЗОстаткиERP_1024 и потом в цикле внести в Итоговую?
6 Lexandr
 
10.10.19
22:21
Вспомнил свои первые обработки, вот уж где было альтернативное программирование. Добрее надо быть. Ну если прям вот по научному и нельзя получить остатки со всех складов одним запросом, то соединения таблиц значений лучше делать в запросе. Помещаешь все ТЗ в один запрос( гугл в помощь или любой учебник по 1С), там делаешь левое соединение к основной таблице, не забывая использовать ЕстьNULL(СвободныйОстатокТверь,0) и вот тебе на выходе красивая ТЗ со всеми остатками, ну а дальше снова гугл и смотришь, как выгрузить ТЗ в эксель файл легко и просто.
7 shadow1337
 
10.10.19
23:47
Никогда не делал запросы, совсем новичок еще, не посоветуете что погуглить?)
И еще мне тут подсказали, что есть метод ВыгрузитьКолонку и еще Свернуть. Может что то с помощью них можно придумать? Или там выгрузить в массив данные и оттуда в другую таблицу?
8 Glavkomnn
 
10.10.19
23:55
фееричный пример, но согласно вопросу
посмотри как я наспех делал добавление строк к таблице недавно

//сумма всех процентов для определения поправочного коэффициента для разбиения строки страховых взносов на четыре
    СуммаКоэф = 22+2.9+5.1+0.2;
    СоцСтрах = ПланыВидовХарактеристик.СтатьиРасходов.НайтиПоНаименованию("Страховые взносы в ФСС (2,9%) соцстрах");
    ОМС = ПланыВидовХарактеристик.СтатьиРасходов.НайтиПоНаименованию("Страховые взносы в ОМС (5,1%) медстрах");
    Травматизм = ПланыВидовХарактеристик.СтатьиРасходов.НайтиПоНаименованию("Страховые взносы в ФСС (0,2%) травматизм");
    
    //копируем рабочую таблицу и очищаем скопированную
    ТаблицаДобавлений = ТаблицаДвижений.Скопировать();
    ТаблицаДобавлений.Очистить();
    
    Для Каждого Стр Из ТаблицаДвижений Цикл
        Если Стр.СтатьяРасходов = ПланыВидовХарактеристик.СтатьиРасходов.НайтиПоНаименованию("Страховые взносы в ОПС 22% (10%)") Тогда
            
            //в скопированную таблицу добавляем три строки по всем взносам с суммами с поправочным коэффициентом
            Нов = ТаблицаДобавлений.Добавить();
            ЗаполнитьЗначенияСвойств(Нов, Стр);
            Нов.Сумма = 2.9/СуммаКоэф*Стр.Сумма;
            Нов.СуммаУпр = 2.9/СуммаКоэф*Стр.СуммаУпр;
            Нов.СуммаРегл = 2.9/СуммаКоэф*Стр.СуммаРегл;
            Нов.СтатьяРасходов = СоцСтрах;
            
            Нов = ТаблицаДобавлений.Добавить();
            ЗаполнитьЗначенияСвойств(Нов, Стр);
            Нов.Сумма = 5.1/СуммаКоэф*Стр.Сумма;
            Нов.СуммаУпр = 5.1/СуммаКоэф*Стр.СуммаУпр;
            Нов.СуммаРегл = 5.1/СуммаКоэф*Стр.СуммаРегл;
            Нов.СтатьяРасходов = ОМС;
            
            Нов = ТаблицаДобавлений.Добавить();
            ЗаполнитьЗначенияСвойств(Нов, Стр);
            Нов.Сумма = 0.2/СуммаКоэф*Стр.Сумма;
            Нов.СуммаУпр = 0.2/СуммаКоэф*Стр.СуммаУпр;
            Нов.СуммаРегл = 0.2/СуммаКоэф*Стр.СуммаРегл;
            Нов.СтатьяРасходов = Травматизм;
            
            //текущую сумму редактируем на поправочный коэффициень
            Стр.Сумма = 22/СуммаКоэф*Стр.Сумма;
        КонецЕсли;
    КонецЦикла;
    
    //добавленную таблицу присоединяем доп строками к основной
    Для Каждого Ст Из ТаблицаДобавлений Цикл
        НовТЧ = ТаблицаДвижений.Добавить();
        ЗаполнитьЗначенияСвойств(НовТЧ, Ст);
    КонецЦикла;
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.