Имя: Пароль:
1C
1С v8
Как свернуть таблицу значений, что бы не преобразовывало в числа (склеило 2 строки ТЗ)?
0 svird
 
21.10.17
16:47
Надо склеить 2 строки по сотрудники и должности (колонки с одинаковыми людьми и разными значениями по датам должны сложится). В колонках со значениями по датам могут быть символы, которые преобразуются в 0 если использовать:     Таб.Свернуть("ИНН,Сотрудник,Должность,ДатаПриема,ФормаЗанятости", "День1,День2,День3,День4,День5,День6,День7,ИндексДня1,ИндексДня2,ИндексДня3,ИндексДня4,ИндексДня5,ИндексДня6,ИндексДня7,ИндексДняГода1,ИндексДняГода2,ИндексДняГода3,ИндексДняГода4,ИндексДняГода5,ИндексДняГода6,ИндексДняГода7");

в описании добавил что это строка, и оно все равно преобразует в 0:
   Таб.Колонки.Добавить("День1", Новый ОписаниеТипов("Строка"));
    Таб.Колонки.Добавить("День2", Новый ОписаниеТипов("Строка"));
    Таб.Колонки.Добавить("День3", Новый ОписаниеТипов("Строка"));
1 svird
 
21.10.17
16:49
может надо использовать Структуру?
2 Tateossian
 
21.10.17
16:55
(1) Напиши пример этих двух строк таблицы значений.
3 svird
 
21.10.17
17:00
Огородник Н А    касcир    О    О    О    О
Огородник Н А    касcир                    О    О
4 svird
 
21.10.17
17:00
во втором случае О    О стоят дальше, просто сместилось
5 Филиал-msk
 
21.10.17
17:02
Ручками. Делаешь вспомогательную таблицу "измерений", перебираешь, ищешь в исходной таблице строки, перебираешь, складываешь, присваиваешь результат.
6 svird
 
21.10.17
17:02
при свертке:
Огородник Н А    касcир    0    0    0    0    0    0
Уже с нулями, а не О
7 svird
 
21.10.17
17:04
(5) Понял, спасибо, поиграюсь
8 Tateossian
 
21.10.17
17:05
(6) Полагаю, таким образом работает функция Свернуть. Потом тип значений на Число что ли меняется, после свертки? Попробуй запросом сгруппировать, например, по максимум или минимум.
9 svird
 
21.10.17
17:09
(8) спасибо
10 svird
 
21.10.17
17:44
Запросом не сработало:
{(33, 10)}: Неверные параметры "МИНИМУМ"
МИНИМУМ(<<?>>ВнТабл.День1) КАК День1,
11 Tateossian
 
21.10.17
18:11
(10) Запрос покажи
12 h-sp
 
21.10.17
18:13
ТаблицаЗначений (ValueTable)
Свернуть (GroupBy)
Синтаксис:

Свернуть(<КолонкиГруппировок>, <КолонкиСуммирования>)
Параметры:

Примечание:

Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число.
Если колонке не присвоены типы, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них есть тип Число, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них нет типа Число, то результат суммирования будет 0, который будет присвоен в соответствующую колонку, где будет преобразован к значению по умолчанию для типа, установленного в колонке.
13 svird
 
21.10.17
18:26
(11)
ВЫБРАТЬ
              |    ВнешняяТаблица.ИНН,
              |    ВнешняяТаблица.Сотрудник,
              |    ВнешняяТаблица.Должность,
              |    ВнешняяТаблица.ДатаПриема,
              |    ВнешняяТаблица.ФормаЗанятости,
              |    ВнешняяТаблица.День1,
              |    ВнешняяТаблица.День2,
              |    ВнешняяТаблица.День3,
              |    ВнешняяТаблица.День4,
              |    ВнешняяТаблица.День5,
              |    ВнешняяТаблица.День6,
              |    ВнешняяТаблица.День7,
              |    ВнешняяТаблица.ИндексДня1,
              |    ВнешняяТаблица.ИндексДня2,
              |    ВнешняяТаблица.ИндексДня3,
              |    ВнешняяТаблица.ИндексДня4,
              |    ВнешняяТаблица.ИндексДня5,
              |    ВнешняяТаблица.ИндексДня6,
              |    ВнешняяТаблица.ИндексДня7
              |ПОМЕСТИТЬ ВнешняяТаблица
              |ИЗ
              |    &ВнешняяТаблица КАК ВнешняяТаблица
              |;
              |
              |////////////////////////////////////////////////////////////////////////////////
              |ВЫБРАТЬ
              |    ВнТабл.ИНН,
              |    ВнТабл.Сотрудник,
              |    ВнТабл.Должность,
              |    ВнТабл.ДатаПриема,
              |    ВнТабл.ФормаЗанятости,
              |    МИНИМУМ(ВнТабл.День1) КАК День1,
              |    МИНИМУМ(ВнТабл.День2) КАК День2,
              |    МИНИМУМ(ВнТабл.День3) КАК День3,
              |    МИНИМУМ(ВнТабл.День4) КАК День4,
              |    МИНИМУМ(ВнТабл.День5) КАК День5,
              |    МИНИМУМ(ВнТабл.День6) КАК День6,
              |    МИНИМУМ(ВнТабл.День7) КАК День7,
              |    МИНИМУМ(ВнТабл.ИндексДня1) КАК ИндексДня1,
              |    МИНИМУМ(ВнТабл.ИндексДня2) КАК ИндексДня2,
              |    МИНИМУМ(ВнТабл.ИндексДня3) КАК ИндексДня3,
              |    МИНИМУМ(ВнТабл.ИндексДня4) КАК ИндексДня4,
              |    МИНИМУМ(ВнТабл.ИндексДня5) КАК ИндексДня5,
              |    МИНИМУМ(ВнТабл.ИндексДня6) КАК ИндексДня6,
              |    МИНИМУМ(ВнТабл.ИндексДня7) КАК ИндексДня7
              |ИЗ
              |    ВнешняяТаблица КАК ВнТабл
              |
              |СГРУППИРОВАТЬ ПО
              |    ВнТабл.ИНН,
              |    ВнТабл.Сотрудник,
              |    ВнТабл.Должность,
              |    ВнТабл.ДатаПриема,
              |    ВнТабл.ФормаЗанятости"
14 Филиал-msk
 
21.10.17
18:40
(10) (11) У тебя строка неограниченной длины. Или ограничивай или считай максимум(выразить день1 как строка (1024)) например
15 Tateossian
 
21.10.17
18:46
(13) Поправь создание таблицы на  Таб.Колонки.Добавить("День1", Новый ОписаниеТипов("Строка"), , Новый квалификаторыСтроки(300))
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс