![]() |
![]() |
![]() |
|
Как работать с табличной частью открытой программно формы? Ø (gr13 29.03.2004 11:20) |
☑ | ||
---|---|---|---|---|
0
Мученик
25.03.04
✎
12:15
|
Совсем замучился: нужно из документа Док1 открыть Док2 и программно создать строки в табличной части Док2. Форма.Док2 имеет две закладки и слои.
Делаю так: Конт=0; ОткрытьФорму("Документ.Док2",Конт,); Если ТипЗначения(Конт)=100 Тогда Конт.ДатаДок=ДатаДок; Конт.Фирма=Фирма; Конт.Контрагент=Контрагент; Конт.Проект=Проект; Конт.Форма.Закладки.ТекущаяСтрока(2); Конт.Форма.ИспользоватьСлой("Шапка,ТабличнаяЧасть,Подвал"); Конт.НоваяСтрока(); Конт.Содержание="Текст"; Конт.Форма.Обновить(1); КонецЕсли; Все получается, кроме создания строки и присвоения значений атрибутам сторки - не работает метод НоваяСтрока(); ПОСОВЕТУЙТЕ, ЧТО ДЕЛАТЬ???? |
|||
1
dvk
25.03.04
✎
12:20
|
Попробуй
Док1.ВыгрузитьТабличнуюЧасть(ТаблЗнач); ЗагрузитьТабличнуюЧасть(ТаблЗнач); |
|||
2
GrayT
25.03.04
✎
12:21
|
Или ПолучитьСтрокуПоНомеру()
|
|||
3
Рупор абсурда
25.03.04
✎
12:54
|
Док = СоздатьОбъект("Документ.Док2");
Док.Новый(); Док.ДатаДок=ДатаДок; ... Док.Записать(); ОткрытьФорму(Док,Конт); |
|||
4
327
25.03.04
✎
12:59
|
(3) Некрасиво ....
|
|||
5
Рупор абсурда
25.03.04
✎
13:04
|
(4) Красиво ...
|
|||
6
It is me
25.03.04
✎
13:14
|
Рабби, что хорошего в обрезании?
Во-первых, это красиво... |
|||
7
Мученик
25.03.04
✎
13:21
|
В том-то и дело, что в Док1 нет табличной части, поэтому не могу
Док1.ВыгрузитьТабличнуюЧасть(ТаблЗнач); ЗагрузитьТабличнуюЧасть(ТаблЗнач); и не нужно мне записывать док2 - это должен решить юзер в диалоге! сейчас попробую через ТЗ |
|||
8
Рупор абсурда
25.03.04
✎
13:27
|
(7) Штатными средствами пока этого никто сделать не смог ...
|
|||
9
327
25.03.04
✎
14:25
|
(7) Легко делается.... Причем штатными средствами .... И с табличной частью.... и без табличной части .... И юзер решает, что делать с этим доком ....
|
|||
10
327
25.03.04
✎
14:25
|
тьфу.... (9) - это к (8)
|
|||
11
Рупор абсурда
25.03.04
✎
14:27
|
(9) Гон!
|
|||
12
Кое-кто@где-то.там
25.03.04
✎
14:38
|
Присоединяюсь к 11.
Уточню: никто, средствами языка, не смог открытьформу незаписанного документа (созданного ч/з СоздатьОбъект) или заполнить табличную часть открытой формы незаписанного документа ... |
|||
13
327
25.03.04
✎
14:43
|
Хи-Хи.....
Вся задача (0) решается через ОткрытьФорму....... с параметрами.... И небольшим дописыванием либо ПриОткрытии либо ВоодНаосновании... смотря что нравится..... лично мне нравится Ввод На основаниии |
|||
14
Кое-кто@где-то.там
25.03.04
✎
14:44
|
Забыл добавить:
"... не изменяя модуля формы самого документа" |
|||
15
327
25.03.04
✎
14:51
|
(12)
"заполнить табличную часть открытой формы незаписанного документа ... " --- ласково его надо ..... ласково ... за вымя... Он же только родился... а ты его грязными руками.... Будь проще .... и документ к тебе потянется .... |
|||
16
327
25.03.04
✎
14:52
|
(14) ....
"... не изменяя модуля формы самого документа" Вроде и это через шаблон раскручивал кто то.... но мне шаблон не нравится.... так что не подскажу как... но решение было .... |
|||
17
Кое-кто@где-то.там
25.03.04
✎
14:53
|
(15) представил описанную картину. содрогнулся ... :)
|
|||
18
327
25.03.04
✎
14:56
|
А коньяк то пьшь? .... так вот знай - его гонят из коровы ....
|
|||
19
Рупор абсурда
25.03.04
✎
14:58
|
Я понял ..., pit сегодня чем-то возбуждён ...
|
|||
20
gr13
25.03.04
✎
15:09
|
послушайте а нельзя так:
Док1 = создатьОбъект("Документы.НекийДокумент1"); Док1.Новый(); .... //присваиваем нужные атрибуты шапки .... ТаблицаЗаказа.ВыбратьСтроки(); Пока ТаблицаЗаказа.ПолучитьСтроку() = 1 Цикл Док1.НоваяСтрока(); Док1.Артикул = ТаблицаЗаказа.Товар.Артикул; Док1.Товар = ТаблицаЗаказа.Товар; Док1.Единица = ТаблицаЗаказа.Товар.ЕдиницаПоУмолчанию; Док1.Количество = ТаблицаЗаказа.Кол; Док1.Коэффициент = 1; Док1.Цена = ТаблицаЗаказа.Цена; Док1.Сумма = ТаблицаЗаказа.Сумма; КонецЦикла; Док1.Записать(); соответственно последнюю строку можно сделать через попрос пользователю |
|||
21
Рупор абсурда
25.03.04
✎
15:12
|
(20) Смело! ... Глупо, но смело! ...
|
|||
22
327
25.03.04
✎
15:25
|
Да напишу я последовательность действий для (0)
Попозже..... сейчас курицу жарить надо... кусать хоцетеся .... |
|||
23
gr13
25.03.04
✎
15:27
|
(21) Рупор, я понимаю, что не большой спец по программированию в 1с, мне интересно в таком случае как это сделать не глупо? данный алгоритм у меня уже работает.А как по другому, более просто- пока не знаю.
|
|||
24
Рупор абсурда
25.03.04
✎
15:29
|
(23) Не обижайся ...
|
|||
25
gr13
25.03.04
✎
15:31
|
(24) я не обижаюсь- на обиженных воду возят, мне интересно КАК?
|
|||
26
Рупор абсурда
25.03.04
✎
15:34
|
(25) Когда никто не знает ответа на вопрос, очень уместным будет, задать его Рупору ...
|
|||
27
Рупор абсурда
25.03.04
✎
15:35
|
(26)+ Ты (8) видел?
|
|||
28
gr13
25.03.04
✎
15:35
|
(26) а что Рупор тоже не знает?...
|
|||
29
gr13
25.03.04
✎
15:36
|
(27) видел, но 327 говорил, что можно вот и интересно, да и почему глупо то что я написал? Неужели надо делать как-то по другому?
|
|||
30
Рупор абсурда
25.03.04
✎
15:36
|
(28) Невероятно, правда?
|
|||
31
Рупор абсурда
25.03.04
✎
15:38
|
(29) 327 любит растопыренными пальцами покрутить ...
И это у него хорошо получается ... |
|||
32
gr13
25.03.04
✎
15:38
|
(30) все мы люди...
|
|||
33
gr13
25.03.04
✎
15:39
|
(31) но ты написал, что глупо почему? как это сделать по другому мне действительно интересно
|
|||
34
Дмитрий
25.03.04
✎
15:46
|
(23) Твой пример правильный. Только здесь немножко не о том. (Это на правах апа, чтобы Некоторые после курицы не забыли об обещанном :)
|
|||
35
Рупор абсурда
25.03.04
✎
15:47
|
(33) Глупо, потому, что это вовсе не ответ на вопрос ...
А смело, потому, что я то тут и молчание не входит в список моих привычек ... :)) |
|||
36
gr13
25.03.04
✎
15:49
|
(35) спасибо, улыбнулся хоть, но во всяком случае хотел как лучше, а получилось как всегда
|
|||
37
Рупор абсурда
25.03.04
✎
16:03
|
(36) Если ты сможешь сделать сабж, я первый скажу, что ты монстр! ...
Никто ещё этого не сделал, равно как никто и не доказал, что сделать этого невозможно ... |
|||
38
Мученик
25.03.04
✎
16:30
|
Рупор, по-моему, совершенно прав. Без записи дока не удается работать с его табличной частью...Убедился. Поскольку задача стояла управлять формой (заполить реквизиты шапки и табл.) дока, но сам док не менять, то ПриОткрытии() и ВводНаОсновании() не хотелось бы модифицировать... Тем не менее, если 327 напишет последовательность действий - буду рад!
|
|||
39
Рупор абсурда
25.03.04
✎
16:33
|
(38) Я знаю 2 способа, как это можно сделать ...
Оба они внештатные ... Один очень внештатный, но зато очень простой ... Второй не очень внештатный, но зато очень извращённый ... |
|||
40
Мученик
25.03.04
✎
16:39
|
Рупор, эти способы - очень секретные?
|
|||
41
Рупор абсурда
25.03.04
✎
16:41
|
(40) Нет, не секретные ... Обычные ...
|
|||
42
Z1
25.03.04
✎
16:45
|
(0) pit прав. Читай его внимательно и все получиться.
|
|||
43
Мученик
25.03.04
✎
16:46
|
Почему-бы не опубликовать?
|
|||
44
Дмитрий
25.03.04
✎
17:07
|
В принципе, если использовать ПриОткрытии, то можно заполнять табличную часть при помощи глобальных переменных. Одна из них флаг Заполнять/Не заполнять, другая таблица значений, из которой берутся данные табличной части.
|
|||
45
327
25.03.04
✎
17:11
|
Обработка
//******************************************* Процедура Сформировать() // делаем нужные дела по добыванию из базы // нужной инфы // затем формируем данные для передачи в документ сз=CreateObject(\"ValueList\"); тз = CreateObject(\"ValueTable\"); // загоняем в СЗ нужные значения реквизитов шапки СЗ.Set (\"ИмяПараметра\", ЗначениеПараметра); СЗ.Set (\"Контрагент\", ВыбКонтрагент); ....... остальные параметры // в ТЗ по результатам запроса или иных действий // формируем табличную часть будущего дока // то, что там нужно... // загоняем ТЗ в параметры СЗ.Set (\"ТЗ\", ТЗ); // открываем новый документ // ОБРАТИТЬ ВНИМАНИЕ НА ПЕРВЫЙ ПАРАМЕТР // в ОткрытьФорму OpenForm(\"Document.РасходнаяНакладная\",СЗ); // закроем форму обработки Form.Close(0); КонецПроцедуры ===================================================== в доке в предопределенной процедуре InputNew пишем if ValueTypeStr(Form.Parameter) =\"СписокЗначений\" then // достаем из СЗ все туда уложенное // т.е. параметры зависят от документа Контрагент=Form.Parameter.Get(\"Контрагент\"); Договор =Form.Parameter.Get(\"Документ\"); // достаем ТЗ ТЗ= Form.Parameter.Get(\"ТЗ\"); // из полученной ТЗ - заполняем табл часть //----------------------------------------- for Индекс = 1 to ТЗ.LinesCnt() do ТЗ.GetLineByNumber(Индекс); NewLine(); ............... заполнение новой строки по ТЗ ............... endDo; // завершающие действия - // по смыслу дока // т.е. многое можно взять из того, что делается // при интерактивном вводе... //----------------------------------------- else // здесь - действия, которые отрабатываются при // интерактивном вводе нового дока endIf; Документ открыт и не записан... но заполнен |
|||
46
327
25.03.04
✎
17:19
|
Хрня какая то.... Обратные косые я не писал ....
чой то не то скрипт творит..... |
|||
47
Рупор абсурда
25.03.04
✎
17:20
|
(42) В чём он прав?
(43) А тебе какой больше нравится? (45) Серёжка Осипов отдыхает! |
|||
48
327
25.03.04
✎
17:22
|
да... можно как вариант попробовать воткнуться в процедуру глобальника, которая отрабатывает в при открытии.. (в бухии это глПроверкаРазрешенияРедактирования)
и попробовать сделать то, что в ПриОткрытии в ней ... тогда доки править не надо.... Но в любом случае надо менять (дописываать) конфу ... |
|||
49
Дмитрий
25.03.04
✎
17:25
|
(45) Круто. Ничего не скажешь.
|
|||
50
327
25.03.04
✎
17:29
|
Как вариант - можно разделить действия на 2 пинка ...
Первым открыть форму нового дока Вторым - заполнить форму нового дока... Но зачем ненужный геморой .... |
|||
51
327
25.03.04
✎
17:30
|
(49) - чего здесь крутого? Последовательное использование стандартных методов .... и процедур ....
|
|||
52
Мученик
25.03.04
✎
17:32
|
(45)327 - спасибо, попробую, я все мучился с управлением из открывающего дока, действительно можно передать все в открываемый и там обработать. Единственно, придется подправить модуль формы стандарного дока конфы, не хотел я его трогать...
(41)Рупор, все же, если знаешь изящный способ - не томи! |
|||
53
Рупор абсурда
25.03.04
✎
17:34
|
(52) Их два, оба я знаю! Скажу больше, один из них мой! Тебе какой нравится?
|
|||
54
Мученик
25.03.04
✎
17:37
|
(53) На твой выбор: какой больше по душе
|
|||
55
Дмитрий
25.03.04
✎
17:39
|
(51) Ну, до такой последовательности пусть и стандартных методов и процедур еще додуматься надо. Только не думая, что я подлизываюсь ))
|
|||
56
327
25.03.04
✎
17:41
|
(53) Методика с RollBack..... не очень нравится ....
|
|||
57
Рупор абсурда
25.03.04
✎
17:45
|
(54) Лучше не мой, мой сложный очень ...
Ладно, устал я тебя мучить ... Колюсь :)) Есть компонента от АЛьФ'а FormEx называется http://consult.legion.ru/alf/formex.shtml Очень классная вещичка, рекомендую ... Так вот: для решения твоей задачки её всего лишь загрузить надо ... ЗагрузитьВнешнююКомпоненту() После этого, все что не получалось, само собой получится ... Это не шутка! Всего одна строчка, и твой код из (0) заработает сам собой ... |
|||
58
Рупор абсурда
25.03.04
✎
17:48
|
(56) "не очень нравится ...", это потому, наверно, что нерабочая она ...
Ты же не думаешь, что я буду нерабочий метод предлагать? ... |
|||
59
Композитор
25.03.04
✎
17:49
|
(55) ... еще додуматься надо. Только не думая...
|
|||
60
327
25.03.04
✎
17:50
|
(58) Да работает она.... но иногда непонятки...
Альфовская компонента - хорошо... но я уже налетел на какой то версии винды.... падала одноЭсина.... P.S. ты еще TurboBl вспомни.... |
|||
61
Рупор абсурда
25.03.04
✎
17:51
|
А что 327 с подлизами делает? Подлизываться к нему, ващще, стоит или нет?
|
|||
62
Рупор абсурда
25.03.04
✎
17:53
|
(60) Да, Да ... Она работает ... Круто работает ... Пока юзер вдруг док записать не захочет ...
|
|||
63
327
25.03.04
✎
17:55
|
стОит или стоИт ?
|
|||
64
Мученик
25.03.04
✎
17:57
|
(57) Спасибо, Рупор! А ты ее часто используешь?
Спасибо ака АЛьФ!!! Буду ее пробовать уже завтра... |
|||
65
Дмитрий
25.03.04
✎
17:57
|
(61) Он их в погребе закапывает, а потом лампу ультрафиолетовую от УПСа включает. Горит 40 минут.
|
|||
66
Рупор абсурда
25.03.04
✎
18:09
|
(64) Со всей ответственностью заявляю, я не АЛьФ!
(65) Тогда не буду подлизываться! Тем более, что обидел он меня когда-то очень-очень ... |
|||
67
Мученик
25.03.04
✎
18:44
|
(66) Я просто поблагодарил АЛьФа отдельно
|
|||
68
Рупор абсурда
25.03.04
✎
19:00
|
(67) Меня там смутило "ака" ...
|
|||
69
Рупор абсурда
25.03.04
✎
19:01
|
(67) Хорошо, что ты не выбрал второй геморройный способ без использования ВК ...
|
|||
70
Мученик
25.03.04
✎
19:12
|
(69) А способ с ВК FormEx - первый геморройный?
|
|||
71
Рупор абсурда
25.03.04
✎
19:55
|
(70) :))
|
|||
72
Дмитрий
26.03.04
✎
09:29
|
(56) Так? И почему не нравится? Зато не надо в модуль формы документа лезть. И всякие компоненты подключать
НачатьТранзакцию(); Док=СоздатьОбъект("Документ.<>"); Док.Новый(); Док.ДатаДок=РабочаяДата(); Док.УстановитьНовыйНомер(); //Заполняем документ как угодно, например так... Док.НоваяСтрока(); Док.НоваяСтрока(); Док.Записать(); Конт=0; ОткрытьФорму(Док.ТекущийДокумент(),Конт); ОтменитьТранзакцию(); |
|||
73
327
26.03.04
✎
13:32
|
А если в документе юзерь нажмет кнопочку ОК..... то все так ХХХХХХХХХ .... мало не покажется ....
Без хитрого финта эта методика не работает ... |
|||
74
Рупор абсурда
26.03.04
✎
13:39
|
(73) "Хитрый финт" отменяет запись, создаёт и записывает копию дока ... и подсовывает глупому юзеру уже его форму?
|
|||
75
Дмитрий
26.03.04
✎
15:01
|
(73) Возможно. счас попробую ОК нажать ))
|
|||
76
Рупор абсурда
26.03.04
✎
15:04
|
(75) Не на рабочей конфе только пробуй ...
|
|||
77
Дмитрий
26.03.04
✎
15:05
|
Да. Не пашет )) А так все классно было ))
|
|||
78
327
26.03.04
✎
17:48
|
(77) Обломался? А ведь можно..... Но геморойно ...
|
|||
79
Рупор абсурда
26.03.04
✎
17:58
|
(78) Опять звездишь? Без переделок в конфигурашке - нельзя!
|
|||
80
Рупор абсурда
26.03.04
✎
17:59
|
(79) Т.е. не так ..., не "нельзя", а нету такого решения пока ...
... и у тебя тоже ... |
|||
81
Рупор абсурда
26.03.04
✎
18:02
|
(80)+ Штатный ввод на основании я не учитываю, как частный тривиальный случай ...
|
|||
82
327
26.03.04
✎
18:05
|
Даже подключение альфовской компоненты - уже переделка ....
Кстати, ты не пробовал TurboBl? Весьма рекомендую.... Особенно нравится ее управление .... |
|||
83
Рупор абсурда
26.03.04
✎
18:06
|
Ещё я знаю, как можно штатно заполнить одну строку в ТЧ ..., только одну ...
|
|||
84
Рупор абсурда
26.03.04
✎
18:06
|
(82) Почему переделка? Я могу подгрузить её из внешнего отчёта ...
|
|||
85
327
26.03.04
✎
18:28
|
Уговорил, уговорил...
Да, без переделки кода некоторые вещи сделать нельзя... С переделкой - можно .... Имеются в виду именно штатные возможности... С формЭксом и дурак сумеет.... |
|||
86
Рупор абсурда
26.03.04
✎
18:32
|
(85) Хе ... :))
Я делал это и без ФормЭкса ... |
|||
87
327
26.03.04
✎
18:44
|
БПр......
|
|||
88
327
26.03.04
✎
18:44
|
Но лучше ну ее ХХХХХХХ
|
|||
89
Рупор абсурда
26.03.04
✎
18:49
|
(87) Я не знаю (не понял), что это ...
Я делал с использованием скриптов (WSH), если если интересно, могу намылить ссылочку ... |
|||
90
327
26.03.04
✎
19:27
|
Быстрая Продажа
|
|||
91
327
26.03.04
✎
19:28
|
А WSH - зависимость от среды исполнения.... Охота париться ?
|
|||
92
Рупор абсурда
26.03.04
✎
19:37
|
(91) Не, не охота ... Гемор ещё тот ...
Пусть уж лучше АЛьФ в таких случаях потрудится :)) |
|||
93
skunk
27.03.04
✎
01:39
|
(89)интересно... намыль...
(91)а под чем работает 1с, где нету wsh? |
|||
94
spock
27.03.04
✎
12:39
|
А мне вот как-то захотелось сделать такую фишку:
В документе Инвентаризация сделать кнопку "Заполнить" - заполнение таб. части. По нажатию этой кнопки должна открываться обработка (НЕ МОНОПОЛЬНО), в которой выполнялся множественный подбор ТМЦ в список на форме. Потом нажав кнопку выполнить, обработка делала запрос на остаток по подобранным товарам и переносила в документ. Сначала бился в лоб....что зря. Потом выяснилось, что делается элементарно. Смысл: Обработка сделав запрос, делала открытие того самого документа глТаблицаДляПодбора = Табл; // это глоб. переменная типа ТаблицаЗначений Если Докум.ТекущийДокумент().Выбран() = 1 Тогда // Докум - контекст документа //Инвентаризация ОткрытьФорму(Докум.ТекущийДокумент(), Докум); // если док. записан, то // открываем его же. Иначе ОткрытьФорму("Документ.Инвентаризация", Докум); // не записан, откроем новый // если заметили, без "#" КонецЕсли; А в документе дописываем предопределенную процедуру ПриПовторномОткрытии() Процедура ПриПовторномОткрытии() Если ТипЗначенияСтр(глТаблицаДляПодбора) = "ТаблицаЗначений" Тогда Если глТаблицаДляПодбора.КоличествоСтрок() > 0 Тогда ЗагрузитьТабличнуюЧасть(глТаблицаДляПодбора); // загрузили в док. строки глТаблицаДляПодбора.УдалитьСтроки(); // очистили глоб. ТЗ, так пров. на // кол. строк (см. выше)КонецПроцедуры ВСЕ!!! А теперь почему я использовал глоб. ТЗ? Потому как мне нужен был контекст докуента в обработке, на случай, если документ закроют, пока открыта обработка. Иначе получается некрасивая ошибка, кто знает поймет :-) |
|||
95
GrayT
27.03.04
✎
12:55
|
А что ОбработкойПодбора воспользоваться нельзя было? Или внешняя обработка ?
|
|||
96
spock
27.03.04
✎
13:01
|
Ну можно было весь справочник загнать в документ, потом по кнопке удалить товары с остатком = 0. Но хотелось изящного решения.
|
|||
97
327
27.03.04
✎
13:11
|
Накручено то....
Можно было воспользоваться либо формой списка в справочнике Либо через подбор (форма списка или обработка в конфе)... Либо затолкать запрос прямо в форму дока... |
|||
98
romix
27.03.04
✎
13:16
|
Решения, как минимум, три:
1) Ввод на основании. 2) Записать текущий документ - создать новый - открыть форму нового. 3) ОткрытьФорму("Документ.ХХХХХ", Контекст); Контекст - это ключевое слово, см. книжки; этот способ позволяет не сохранять документы. |
|||
99
spock
27.03.04
✎
13:22
|
2(pit)Ну вот нужна была мне конфетка :-)
Чета давно не ходишь на тяпницы... |
|||
100
327
27.03.04
✎
13:23
|
Холодно
|
|||
101
327
27.03.04
✎
13:24
|
Ну ни себе.... на этом печальном форуме сотку словил ....
|
|||
102
327
27.03.04
✎
13:25
|
(98) а ты читать умеешь? Ну и прочитай внимательно сабж... Все высказано...
|
|||
103
Дмитрий
27.03.04
✎
18:32
|
(78) В принципе предполагаю как. Например специальный обработчик кнопки ОК. Но делать не буду, пока не припрет )
|
|||
104
gr13
29.03.04
✎
09:45
|
(0) Начни новую ветку. Насколько помню, основание для закрытия и переноса обсуждения в другую ветку:
1. Автор оставляет ссылку на новую ветку 2. В новой ветке есть ссылка на эту. З.ы. посмотри сколько постов, по мойму лучше перенести обсуждение в другую ветку, где будет ссылка на эту и будет быстрее открываться |
|||
105
Мученик
29.03.04
✎
10:49
|
(104) Помогите чайнику на вашем форуме! Не могу я закрыть ветку: открыл без регистрации, а теперь не могу зарегистрироваться с ником Мученик. Что делать?
|
|||
106
Композитор
29.03.04
✎
10:51
|
(105) Мучаться.
|
|||
107
Мученик
29.03.04
✎
10:55
|
(106)Ладно, пусть будет открыта ветка и растет до бесконечности...
|
|||
108
Композитор
29.03.04
✎
10:57
|
+(106) А может мучИться. :)
|
|||
109
gr13
29.03.04
✎
11:09
|
(105) я уже объяснил в 104
|
|||
110
Мученик
29.03.04
✎
11:19
|
Продолжнеие ветки Работа с табличной частью открытой программно формы (ч.2)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |