Имя: Пароль:
1C
1С v8
Помогите решить задачку с колонками
,
0 Kamich
 
29.03.13
13:22
Добрый день. Помогите решить задачку.
http://forum.infostart.ru/forum14/topic83090/message878619/index.php#message878619
1 Defender aka LINN
 
29.03.13
13:24
На мой взгляд, это уже наглость. Что, сюда скопипастить сложно, буфер обмена сломается?
2 zladenuw
 
29.03.13
13:26
и в чем сложность ?
при выводе строки ставь доступность, в зависимости от значение количества.
3 Галахад
 
гуру
29.03.13
13:26
Какая-то стремная задача.
Нафига это нужно?
4 cw014
 
29.03.13
13:28
А главное название у документа отличное - Документ3
5 Kamich
 
29.03.13
13:34
(2)Под корректируйте если что не так:
Стр=ЭлементыФормы.ТабличнаяЧасть1.ТекущаяСтрока;
       Если Стр.Количество="2" Тогда
           Стр.Клиент1.Видимость=Истина;
           Стр.Клиент1.Доступность=Истина;
       ИначеЕсли Стр.Количество="1" Тогда
       Стр.Клиент1.Видимость=Ложь;
       Стр.Клиент1.Доступность=Ложь;
       КонецЕсли;
6 rutony
 
29.03.13
13:39
(5) Событие ПриВыводиСтроки смотри
7 zladenuw
 
29.03.13
13:41
(0) а вообще какая задача. всегда ли будет 3 клиента ? может их может быть n
8 Kamich
 
29.03.13
13:44
(7) Расскажу в кратце для чего это надо.
Предположим,
Номер Строки-это Количество номеров в квартир. Клиент,Клиент1,Клиент2-Это количество лиц,которые проживают в текущей квартире.А Колонка Реквизит1 с значением булева, идет на все клиенты в текущей квартире.
Максимум может быть 5 клиентов в квартире
9 hhhh
 
29.03.13
13:44
(5) а ты уже в курсе, что "2" - это строка, а 2 - это число.
10 Kamich
 
29.03.13
13:46
(6)    Процедура ТабличнаяЧасть1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
Стр=ЭлементыФормы.ТабличнаяЧасть1.ТекущаяСтрока;
       Если Стр.Количество="2" Тогда
           Стр.Клиент1.Видимость=Истина;
           Стр.Клиент1.Доступность=Истина;
       ИначеЕсли Стр.Количество="1" Тогда
       Стр.Клиент1.Видимость=Ложь;
       Стр.Клиент1.Доступность=Ложь;
       КонецЕсли;

   КонецПроцедуры

Что не так?
11 Kamich
 
29.03.13
13:46
(9) Да в курсе
12 Зойч
 
29.03.13
13:46
смотри как с субконто делают
13 Зойч
 
29.03.13
13:47
(8) 1С:Бордель что ли???
14 kosts
 
29.03.13
13:47
(0) Кто поставил такую задачу?
15 Kamich
 
29.03.13
13:48
(9) Я исправил:
Стр=ЭлементыФормы.ТабличнаяЧасть1.ТекущаяСтрока;
       Если Стр.Количество=2 Тогда
           Стр.Клиент1.Видимость=Истина;
           Стр.Клиент1.Доступность=Истина;
       ИначеЕсли Стр.Количество=1 Тогда
       Стр.Клиент1.Видимость=Ложь;
       Стр.Клиент1.Доступность=Ложь;
       КонецЕсли;
Но он по прежнему выводит ошибку
{Документ.Документ1.Форма.ФормаДокумента(26)}: Значение не является значением объектного типа (Видимость)
       Стр.Клиент1.Видимость=Ложь;
16 kosts
 
29.03.13
13:50
(15) Тебе нужно не с текущей строкой играть, а с оформлением строки.
17 kosts
 
29.03.13
13:51
И зачем доступность, если элемент уже и так не видим. Логику включи.
18 kosts
 
29.03.13
13:52
Для удобства пользователей было бы лучше не скрывать колонки, а делать их серыми и недоступными. А то ширины колонок будут играть и глаза разбегаться...
19 kosts
 
29.03.13
13:55
В событие ТабличнаяЧасть1ПриВыводеСтроки() можно попасть и тогда, когда на экране нет ни одной строки. Т.е. вполне может так быть

Стр=ЭлементыФормы.ТабличнаяЧасть1.ТекущаяСтрока; => Неопределено
       Если Стр.Количество=2 Тогда => Ошибка
20 zladenuw
 
29.03.13
13:59
прикольно. а если живут таджики. где их 40 человек. что тогда ? будешь все сначала делать ?
Лучше список значений. или отдельную тч которая будет связана с основной. и будет подгружать в эту тч список жильцов
21 kosts
 
29.03.13
14:01
22 Kamich
 
29.03.13
14:10
(21) сДЕЛАЛ ВОТ ТАК:
    Стр=ЭлементыФормы.ТабличнаяЧасть1.ТекущаяСтрока;
    Если Стр.Количество=2 Тогда
        ЭлементыФормы.ТабличнаяЧасть1.Колонки.Клиент1.Видимость = Истина;
       
          ИначеЕсли Стр.Количество=1 Тогда
      ЭлементыФормы.ТабличнаяЧасть1.Колонки.Клиент1.Видимость =Ложь;
       КонецЕсли;


Работает как надо.Но только не в текущей строке а в обем в ТЧ.
Т.е. если я создал строчку со значением колонки Количество - 2. то все нормально Колонка Клиент1 становится видимым и все как нужно.
НО ВОТ если я добавляю строчку и указываю в колонке Количество 1 то в предыдущей строке, Колонка "Клиент1" пропадает становится не видимым. как этого избежать?
23 kosts
 
29.03.13
14:14
(22) Это для 2-х покажи как для 5-ти получилось.
24 Kamich
 
29.03.13
14:16
(23) Все то же самое просто добавляется дополнительные условия Если .
Но вот как этого избежать? (22)
25 kosts
 
29.03.13
14:18
(24) Зачем просить было, если всё равно не читал, что тебе написали...
26 kosts
 
29.03.13
14:20
Опиши более развернуто задачу, может что нибудь дельного посоветуют.
27 Kamich
 
29.03.13
14:34
(26)

Раскрою задачу.
В общем при указании количества к примеру - 2, то Колонки Клиент1 и Паспорт1 становятся видимыми.
Суть в том,чтобы при создании к примеру следующей строки и вводе в текущей новой строке колонки Количество указываем значение 1. То в текущей строке нам доступны ячейки Клиенгт и Паспорт, но при этом в в предыдущей строке ячейки Клиент,Клиент1 и Паспорт,Паспорт1, остаются по прежнему видны.
Картинку разместил на :
http://forum.infostart.ru/forum14/topic83090/message878742/?result=reply#message878742
28 zladenuw
 
29.03.13
14:35
(27) это не постановка задача, это твой взгляд на решение задачи.
29 hhhh
 
29.03.13
14:36
(24) а чего у тебя клиент в табличной части?  И почему если он одну штуку покупает, ты его невидимым хочешь сделать?

Вообще-то многоступенчатых колонок в 1с не бывает. Или колонка видна или она не видна. Выбирай одно из двух.
30 kosts
 
29.03.13
14:37
(27) Та, не. Конкретно с этой проблемой всё ясно.
Опиши что ты делаешь в целом.
31 kosts
 
29.03.13
14:38
(29) >Вообще-то многоступенчатых колонок в 1с не бывает.
Не путай его. Вполне можно делать отдельные ячейки невидимыми.
32 Kamich
 
29.03.13
14:40
(31) (30) Уже все описал...
33 kosts
 
29.03.13
14:42
(32) Как хочешь. Имелось ввиду. Что за конфигурация, что делает этот документ. В целом. Может что-то посоветовали бы.
34 Kamich
 
29.03.13
14:43
(33) Составляет список проживающих в доме,по квартирам
35 kosts
 
29.03.13
14:49
(34) Если задача реальная, а не учебная, то 5 колонок это явно мало. Лучше делать каким либо способом в котором не будет ограничения.
36 Kamich
 
29.03.13
14:52
(35) к примеру создать новую ТЧ ?
Просто тут еще один пункт.
При выборе клиента в Колонки Паспорта, добавляется номер паспорт по клиенту.
Или ....
Может что нибудь другое предложите?
Я уже дней 4 вожусь с этим...
37 kosts
 
29.03.13
14:56
(36) Клиентов вполне можно и справочником делать. Там же и паспорт.
А в документах будет ТЧ в которых будут добавляться строки с клиентами.
38 Kamich
 
29.03.13
14:58
(37) Клиенты уже и есть справочники,там же и паспорта.
Предположим,
Номер Строки-это Количество квартир в доме. Клиент,Клиент1,Клиент2-Это количество лиц,которые проживают в текущей квартире.Паспорт,Паспорт1,Паспорт2-Это Паспорта,Клиентов .А Колонка Реквизит1 с значением булева, идет на все клиенты в текущей квартире. Предназначена для того,чтобы дать понять,что ... ну к примеру что там живут все взрослые.
39 kosts
 
29.03.13
15:01
(38) Скажи назначение это таблицы. Это ввод какого-то состояния, паспортов или это отчет такой.
40 kosts
 
29.03.13
15:03
Или это первоначальный ввод проживающих.
41 hhhh
 
29.03.13
15:05
(38) у тебя должно быть 4 колонки: колонка Клиент, колонка Паспорт, колонка НомерКвартиры и колонка Реквизит. Зачем ты размножаешь колонки? Паспорт1, Паспорт2? На человека одна строка, следующий жилец - вторая строчка.
42 Kamich
 
29.03.13
15:15
(41) Я прикрепил фотографию как должно быть просмотрите пожалуйста 43 ответ по след.ссылке:
http://forum.infostart.ru/forum14/topic83090/message878800/?result=reply#message878800
43 kosts
 
29.03.13
15:26
(42) Смысл понятен. Так можно намутить играясь видимостью и расположением колонок. Как это делать уже давно написали. Покажи код который у тебя на данный момент получился.

И можно сделать неограниченное количество проживающих в квартире (если использовать отдельную ТЗ с динамической генерацией колонок, с последующим переносом данных в скрытую табличную часть документа).
44 Kamich
 
29.03.13
15:31
(43) Сейчас я использую
   Процедура ТабличнаяЧасть1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   Если ДанныеСтроки.Количество =1 тогда
       ОформлениеСтроки.Ячейки.Клиент.Видимость = Истина;    
       ОформлениеСтроки.Ячейки.Клиент1.Видимость = ложь;    
       
       ОформлениеСтроки.Ячейки.Клиент2.Видимость = ложь;
   ИначеЕсли ДанныеСтроки.Количество =2 тогда
       ОформлениеСтроки.Ячейки.Клиент.Видимость = Истина;    
       ОформлениеСтроки.Ячейки.Клиент1.Видимость = Истина;    
       ОформлениеСтроки.Ячейки.Клиент2.Видимость = ложь;

   ИначеЕсли ДанныеСтроки.Количество =3 тогда
       ОформлениеСтроки.Ячейки.Клиент.Видимость = Истина;    
       ОформлениеСтроки.Ячейки.Клиент1.Видимость = Истина;    
       ОформлениеСтроки.Ячейки.Клиент2.Видимость = Истина;
   КонецЕсли;
   КонецПроцедуры


В принципы работает как надо.
Единственно вот,если реально будет 10 клиентов...
Вы говорите "И можно сделать неограниченное количество проживающих в квартире (если использовать отдельную ТЗ с динамической генерацией колонок, с последующим переносом данных в скрытую табличную часть документа)."

Вот это было бы на мой взгляд намного лучше... но вот как реализовать её...
45 zladenuw
 
29.03.13
15:34
(44) че как. открываешь УТП или УТ смотришь Установка цен номенклатуры. там реализовано. что тебе надо.
46 hhhh
 
29.03.13
15:37
(42) но там ведь 4 колонки на фотографии. Зачем ты в табличной части делаешь 12 колонок? Делай тоже 4. Как тебе и нужно.
47 Kamich
 
29.03.13
15:51
(46) у меня пять колонок:номера,Клиент,Паспорт,Количество,Тип Номера.

Просмотрите на новую фотографию ответ № 48:
http://forum.infostart.ru/forum14/topic83090/message878828/?result=reply#message878828
48 Trotter
 
29.03.13
15:59
Это что скрытая реклама инфостарта ?))
Пойду тоже там создам тему и буду ссылаться на мисту )
49 hhhh
 
29.03.13
16:01
(47) а зачем тогда в табличной части фигачишь 25 колонок? Паспорт1, Парспорт2, Паспорт3 и Паспорт4?
50 Kamich
 
29.03.13
16:04
(49) В таком случае,по другому как?
51 Kamich
 
29.03.13
16:04
(48) Жаль то,что в мисте нельзя добавлять "изображения"
52 Зойч
 
29.03.13
16:05
почему не хочешь подчиненную тч?
53 Зойч
 
29.03.13
16:06
и зачем 1 документ на несколько номеров. Не удобнее ли будет 1 к 1?
54 Kamich
 
29.03.13
16:06
(52) Потомучто, у меня не получается связать их вместе
55 Зойч
 
29.03.13
16:06
(54) ну так спроси
56 Kamich
 
29.03.13
16:09
(55) Как мне их связать, и использовать в дальнейшем.К примеру для формирования печатного документа что-то вроде того,что я продемонстрировал по ссылке (47) ?
57 Зойч
 
29.03.13
16:10
а почему не (53) ?
58 Kamich
 
29.03.13
16:11
(57) 1к1 т.е....
59 Птица
 
29.03.13
16:15
квартиры лучше вообще справочником сделать, а не прросто числовым номером. Наверняка у их есть какие-то реквизиты, присущие квартире в целом.
60 Птица
 
29.03.13
16:18
+(59) тогда можно сделать по ссылке из (0) как в (41), но в тч -реквизит квартира сделать справочником
61 Птица
 
29.03.13
16:21
просто тут автор пытается впихнуть невпиху.. (зачеркнуто)  в одну ТЧ - квартиры и жильцов. Это принципиально разные объекты, хоть и связаны.
62 Kamich
 
29.03.13
16:33
Ладно всем спасибо за терпение...Что нибудь "намучу"...
Всем спасибо за выделенное время и за ваши советы)