Имя: Пароль:
1C
1C 7.7
v7: Таблица значений в форме
0 Мируня
 
20.06.12
20:45
Люди добрые, помогите!!! С 7-кой не работала лет сто, все забыла...
Проблема: в обработке в форму добавила таблицу значений, а вот колонки для этой ТЗ могу добавить только программно... Вроде же можно "увидеть" эти колонки в конфе? И как настроить эту ТЗ, чтоб ее редактировать можно было в пользовательском режиме?
1 zak555
 
20.06.12
20:47
> 7-кой не работала лет сто

сколько же тебе лет ?
2 Мируня
 
20.06.12
20:54
)))) по крайней мере, последние года три писать на ней ничего не приходилось...
3 GreyK
 
20.06.12
20:55
(0) Позови старца-спеца от 1С, не мучай свой восьмерошный интелект, да и заплати ему как следует.
4 NS
 
20.06.12
20:55
А до этого "настраивать ТЗ" приходилось?
5 Мируня
 
20.06.12
20:58
(4) да конечно, 10 лет одинэсного стажа... да вот память поводить стала(((
6 GreyK
 
20.06.12
21:00
(5) Видимо СП у тебя спёрли :)

НоваяКолонка(<?>,,,,,,,);
Синтаксис:
НоваяКолонка(<Идентификатор>,<Тип>,<Длина>,<Точность>,<Заголовок>,<Ширина>,<Формат>,<Положение>)
Назначение:
Добавить в конец таблицы значений новую колонку. Возвращает номер новой колонки.
Параметры:
<Идентификатор> - необязательный параметр. Идентификатор колонки. Если не указан, то обращение к колонке возможно только по номеру.
<Тип> - необязательный параметр. Строка или вид субконто, задающий тип колонки. Если не указан, то можно хранить любой тип.
<Длина> - необязательный параметр. Длина для числовой или строковой колонки.
<Точность> - необязательный параметр. Точность (длина дробной части) для числовой колонки.
<Заголовок> - необязательный параметр. Строковое выражение, содержащее заголовок колонки в элементе диалога типа ''ТаблицаЗначений''.
<Ширина> - необязательный параметр. Числовое выражение, содержащее ширину колонки (в символах) для представления колонки в элементе диалога типа ''ТаблицаЗначений''.
<Формат> - необязательный параметр. Строковое выражение,     содержащее форматную строку, которая будет использована при визуальном отображении значений данной колонки.
<Положение> - необязательный параметр. Определяет вариант выравнивания при визуальном отображении значений данной колонки.

УстановитьПараметрыКолонки(<?>,,,,,,,);
Синтаксис:
УстановитьПараметрыКолонки(<Колонка>,<Тип>,<Длина>,<Точность>,<Заголовок>,<Ширина>,<Формат>,<Положение>)
Назначение:
Устанавливает новые значения параметров колонки (только те, которые указаны). Если какой либо параметр при вызове метода не задан, то данный параметр колонки не изменяется.
Параметры:
<Колонка> - номер или код колонки, для которой будут установлены новые параметры.
<Тип> - необязательный параметр. Строка или вид субконто, задающий тип колонки. Если не указан, то можно хранить любой тип.
<Длина> - необязательный параметр. Длина для числовой или строковой колонки.
<Точность> - необязательный параметр. Точность (длина дробной части) для числовой колонки.
<Заголовок> - необязательный параметр. Строковое выражение, содержащее заголовок колонки в элементе диалога типа ''ТаблицаЗначений''.
<Ширина> - необязательный параметр. Числовое выражение, содержащее ширину колонки (в символах) для представления колонки в элементе диалога типа ''ТаблицаЗначений''.
<Формат> - необязательный параметр. Строковое выражение,     содержащее форматную строку, которая будет использована при визуальном отображении значений данной колонки.
<Положение> - необязательный параметр. Определяет вариант выравнивания при визуальном отображении значений данной колонки.
7 NS
 
20.06.12
21:05
(5) в 1С 7.7 визуальной настройки колонок в тз на форме нет!
И увидеть эти колонки в конфе ты тоже не сможешь.
8 Мируня
 
20.06.12
21:05
(6) это-то уже есть... говорю же, колонки хоть программно, но добавила... Сейчас надо чтоб пользователь мог редактировать эту ТЗ. Пример: две колонки, одна заполняется автоматически, в другую юзер подставляет свои значения (причем типы выбираемых значений могут быть разные). И далее база обрабатывается согласно этим соответствиям.
9 NS
 
20.06.12
21:07
(8) Повесь процедуру на ТЗ,
В ней определи текущую строку, и проставляй.
10 GreyK
 
20.06.12
21:08
(7) Зависит от разработчика, никто не мешает сделать настройки.
11 GreyK
 
20.06.12
21:11
(9) Не "текущую строку", а "текущую колонку", а в зависимости от колонки делаешь нужные движухи в ТЗ.
12 NS
 
20.06.12
21:12
(11) Текущую строчку.
Цитирую:
"Пример: две колонки, одна заполняется автоматически, в другую юзер подставляет свои значения (причем типы выбираемых значений могут быть разные)."
13 2S
 
20.06.12
21:15
фото!
кнопки вешай на добавить, удалить
редактирование вешай на саму тз
14 2S
 
20.06.12
21:17
хорошим тоном считаю внешнюю обработку для добавления/редактирования строки тз. Одна обработка с разными режимами
15 Мируня
 
20.06.12
21:19
Процедура ПриНачалеВыбораЗначения(ЭлементДиалога,Флаг)
   Если ЭлементДиалога = "Поле2" Тогда
       Данные = ТабДанных.ТекущаяСтрока();
       ИмяСпр = СоздатьОбъект(Справочник."+Данные.Поле1);  
       .....
       ОткрытьФорму("Справочник."+ИмяСпр);
       
   КонецЕсли;
   
КонецПроцедуры

Примерно что-то такое, но вот справочник для выбора не открывается...
16 NS
 
20.06.12
21:21
(15) При чем тут Приначалевыборазначения()?
Ты должна прописать свою, а не предопределенную процедуру.
17 Мируня
 
20.06.12
21:21
(13) добавлять/удалять строки как раз не надо...
18 Конфигуратор1с
 
20.06.12
21:21
Всех кто помогает без фотки забанить
19 NS
 
20.06.12
21:22
ОткрытьФорму() - не вернет тебе значение.
20 GreyK
 
20.06.12
21:22
(12) Нет
Процедура ОбработкаТыкаТЗ()
   Если ТЗ.ТекущаяКолонка()="ИмяКолонки" Тогда
       А здесь пишется код.
   КонецЕсли;
КонецПроцедуры //ОбрТабл()
21 NS
 
20.06.12
21:23
(20) И  что изменится, если ты уберешь проверку на имя колонки?
22 Мируня
 
20.06.12
21:23
(16), (20) счас попробую...
23 GreyK
 
20.06.12
21:24
(15) На форму ТЗ вешаешь процедурку ОбработкаТыкаТЗ()
Вешаешь фотку... и дальше
24 2S
 
20.06.12
21:26
комрады, ждем фото!
тссс
25 NS
 
20.06.12
21:26
Процедура ОбработкаТыкаТЗ()
стр=ТЗ.Текущаястрока();
Если (стр>0)и(стр<=ТЗ.Количествострок()) тогда
спр=создатьобъект("Справочник."+имя);
Если спр.выбрать(...)>0 тогда
  ТЗ.получитьстрокупономеру(стр);
  ТЗ.ДанныеПользователя=спр.Текущийэлемент();
КонецЕсли;
КонецЕсли;
26 2S
 
20.06.12
21:27
это зачем
стр<=ТЗ.Количествострок()?
27 GreyK
 
20.06.12
21:28
(23) За такое на костЁр!
28 NS
 
20.06.12
21:28
(26) На всякий случай.
29 GreyK
 
20.06.12
21:28
(27) > (25)
30 NS
 
20.06.12
21:29
(29) Это тебя на костер, за проверку имени колонки в ТЗ, в которой только одна редактируемая колонка.
31 2S
 
20.06.12
21:29
Если (стр>0)и(стр<=ТЗ.Количествострок())и неконецсвет тогда
не?
32 NS
 
20.06.12
21:31
(31) У меня 1С под рукой
33 NS
 
20.06.12
21:31
нет, но что выдаст Текущаястрока() после позиционировании на последней строке, и удалении после этого строки?
34 2S
 
20.06.12
21:32
(32) без шуток, никогда не использовал проверку на второе условие
Опиши исключительную причину
35 2S
 
20.06.12
21:33
хм..
36 GreyK
 
20.06.12
21:33
(30) Колонок у ТЗ может быть много, а вот ТекущаяСтрока одна!
Если одна редактируемая колонка на ТЗ, то урод в квадрате. Для этого есть СЗ.
37 2S
 
20.06.12
21:34
интересно, сейчас смоделирую
38 NS
 
20.06.12
21:35
(34) Неа, смещает текущую строку, так что вторая проверка не нужна...
Хотя нужно еще проверить обрезку ТЗ методом количествострок()
39 NS
 
20.06.12
21:36
Блин, и после обрезки через количествострок() смещает текущую строку.
Может в одном из ранних релизов был глюк на эту тему, и поэтому привык писать проверку.
40 NS
 
20.06.12
21:37
(36) В условии написано что изменяемая колонка одна.
41 2S
 
20.06.12
21:37
(38) во-во, никогда с описанным тобой глюком не сталкивался. Неважно, какую строку удаляли.
в тесте все нормально прошло
42 NS
 
20.06.12
21:38
(36) В ТЗ может быть десять колонок, но при этом одна редактируемая.
И с помощью СЗ ты её не смоделируешь. про ТЗ у неё тоже в условии.
43 2S
 
20.06.12
21:38
(42) чел не в теме
44 2S
 
20.06.12
21:39
(36) по какому условию ты будешь для разных типов колонок использовать ввестичисло(), ввестидату() и т.д.?
45 GreyK
 
20.06.12
21:40
+(43) Да.
46 2S
 
20.06.12
21:40
о тебе я
47 NS
 
20.06.12
21:42
(44) Прочитай ветку - у неё одна редактируемая колонка. Какие разные типы колонок? Ты о чем?
48 Мируня
 
20.06.12
21:43
Оставь вас здесь на минутку... прочитать не успеваю...

В общем, вроде сработало вот это:

ТекКол = ТабДанных.ТекущаяКолонка();
ТекСтр = ТабДанных.ТекущаяСтрока();
ВыбЗначение = "";
Если ТекКол = "Филиал" Тогда
Если ВвестиЗначение(ВыбЗначение,"Выберите филиал","Справочник.УпрАналитика")=1 Тогда
 ТабДанных.УстановитьЗначение(ТекСтр,ТекКол,ВыбЗначение);
КонецЕсли;
КонецЕсли;
49 2S
 
20.06.12
21:43
да блин, NS, я для (36) уже говорю, не по сабжу )
50 2S
 
20.06.12
21:44
(48) молодец, а фото?
51 Мируня
 
20.06.12
21:45
всем спасибо, на самом деле колонок было несколько, просто если разобраться с одной колонкой - с несколькоими тоже можно разобраться. а вводимые данные только ссылочного типа, так что тут проще)))
52 NS
 
20.06.12
21:46
(48) Еще круче ВыбЗначение=ТЗ.Получитьзначение(текстр,теккол);
Перед ввестиЗначение()
53 NS
 
20.06.12
21:46
Текстр на ноль всё-таки лучше проверить.
54 Мируня
 
20.06.12
21:46
кстати, я тут чел новый, а что значит фото?
55 NS
 
20.06.12
21:47
(54) В личных данных. Топлесс.
56 2S
 
20.06.12
21:47
(54) вооооооооот. проваливайся в себя, редактируй фото
57 Мируня
 
20.06.12
21:48
(52) - да, тоже вариант, кстати)) пока делала - много чего вспомнилось...)))
58 GreyK
 
20.06.12
21:49
(54) Молодые одинэсниги ищут жён, вот и просят фото.
59 GreyK
 
20.06.12
21:50
+(58) В личке.
60 Мируня
 
20.06.12
21:53
ну... как-то вот так...))) любуйтеся)))
61 Мируня
 
20.06.12
21:54
а молодым одинесникам не повезло... рядом старый неодинесовец против...)))
62 GreyK
 
20.06.12
21:59
(60) Ну а ранец то зачем на рисунке!?
63 NS
 
20.06.12
22:00
Вроде это спинка стула.
64 GreyK
 
20.06.12
22:01
+(62) Хотя это наверно спика стула :)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший