Имя: Пароль:
1C
1С v8
Загрузка из запроса в ТЗ
0 Singenor
 
15.11.12
11:30
Имею ТП, в нем 4 колонки, в первые 2 загружаются данные из дбф файла, во вторые 2 колонки должны загружаться данные из запроса, но возникает трудность, чтобы они писались в одну строку, а не в несколько, т.е.
Данные дбф                        ДанныеЗапроса
1
2
                                   1
                                   2
а нужно в одну строку, как?
1 Singenor
 
15.11.12
11:31
Файл = Новый Xbase;
    Файл.Кодировка=КодировкаXBase.OEM;
    Файл.ОткрытьФайл(ПутьКФайлу);
    Если НЕ ЗначениеЗаполнено(ПутьКФайлу) Тогда
        Сообщить("Не указан DBF файл, для загрузки");
        Возврат;
    КонецЕсли;
    ПараметрыПоиска = Новый Структура;
    ПараметрыПоиска.Вставить("Артикул", Файл.Art);
    ПараметрыПоиска.Вставить("Наименование", Файл.IKT);
    ТаблицаЗагрузки = Новый ТаблицаЗначений;
    ТаблицаЗагрузки.Колонки.Добавить("Пометка");
    ТаблицаЗагрузки.Колонки.Добавить("АртикулФайл", , "Артикул из файла");
    ТаблицаЗагрузки.Колонки.Добавить("НаименованиеФайл", ,"Наименование из файла");
    ТаблицаЗагрузки.Колонки.Добавить("АртикулСправочник", ,"Артикул из справочника");
    ТаблицаЗагрузки.Колонки.Добавить("НаименованиеСправочник", , "Наименование из справочника");
    Если Файл.Открыта() тогда
        Файл.Первая();
        НомерСтр = 1;
    КонецЕсли;
   
    Пока не Файл.ВКонце() Цикл
        Если  ТаблицаЗагрузки.Найти(ПараметрыПоиска)=Неопределено Тогда
            НоваяСтрока = ТаблицаЗагрузки.Добавить();
            НоваяСтрока.АртикулФайл = СокрЛП(Файл.Art);
            Новаястрока.НаименованиеФайл = СокрЛП(Файл.IKT);
        КонецЕсли;
        Файл.Следующая();
    КонецЦикла;
    Файл.ЗакрытьФайл();
    ОбработатьВходящиеДаныне(ТаблицаЗагрузки);
    ЭлементыФормы.ТабличноеПоле1.Значение = ТаблицаЗагрузки;
    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
это на дбф
2 Singenor
 
15.11.12
11:31
Процедура ОбработатьВходящиеДаныне (ТаблицаЗагрузки)
    ЗапросПоНоменклатуре = Новый Запрос;
    ЗапросПоНоменклатуре.Текст =   "ВЫБРАТЬ
    |    Номенклатура.Артикул КАК АртикулФайл,
    |    Номенклатура.Наименование КАК НаименованиеФайл
    |ПОМЕСТИТЬ втТЗ
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВтТЗ1.Наименование,
    |    ВтТЗ1.Артикул
    |ИЗ
    |    &ВтТЗ КАК ВтТЗ1";
    ЗапросПоНоменклатуре.УстановитьПараметр("ВтТз1", ТаблицаЗагрузки);
    Результат = ЗапросПоНоменклатуре.Выполнить().Выгрузить();
       
   
   
   
КонецПроцедуры
это на ТЗ
3 Goggy
 
15.11.12
11:32
(2) Например соединение с ТЗшкой
4 Singenor
 
15.11.12
11:33
так я ведь соединяю в (2)
5 Goggy
 
15.11.12
11:34
(4) где именно?
6 Singenor
 
15.11.12
11:34
ЗапросПоНоменклатуре.УстановитьПараметр("ВтТз1", ТаблицаЗагрузки);
не?
7 Singenor
 
15.11.12
11:34
ТаблицаЗагрузки и есть Тзшка ведь
8 Aprobator
 
15.11.12
11:35
Свернуть и не етите мозг, товарищи.
9 Aprobator
 
15.11.12
11:35
а млин - там разные колонки.
10 FIXXXL
 
15.11.12
11:36
(7) поле связи какое у этих двух наборов данных?
11 Singenor
 
15.11.12
11:38
справочник номенклатура
12 Aprobator
 
15.11.12
11:38
лол.
13 Goggy
 
15.11.12
11:39
(6) неа
14 FIXXXL
 
15.11.12
11:41
(11) что справочник?
15 Singenor
 
15.11.12
11:42
(14) я не понимаю, какое поле связи, нужно чтобы из 2х наборов данные заносились в одно табличное поле
16 Singenor
 
15.11.12
11:43
они не связаны точнее, так что у них нет поля связи
17 Reset
 
15.11.12
11:44
(15) У тебя два набора строк. Нужно получить один набор. Т.е каждой строке из одного сопоставить строку другого и объединить их. Каким образом нужно определять какая строка какой соответсвует?
18 Aprobator
 
15.11.12
11:45
вопрос - нужно ли ему сопоставление вообще. Тут вообще непонятно какая задача решается. Хотя, заполнить колонки без сопоставления вообще не вопрос.
19 Singenor
 
15.11.12
11:45
(17) по артикулу
20 Reset
 
15.11.12
11:45
По твоему примеру "1,2" нельзя об этом догадаться, поэтому об этом спрашивают тебя
21 Aprobator
 
15.11.12
11:46
зачем тогда артикул 2 раза выводить в результирующую ТЗ?
22 Singenor
 
15.11.12
11:46
(21) один артикул выводится из дбф файла, второй артикул выводится из справочника
23 Reset
 
15.11.12
11:47
Тогда (3) с соединением по артикулу или тупо циклом с поиском
24 Aprobator
 
15.11.12
11:48
(22) если по ним связь есть, то нафига? Не проще сделать тупо 2 колонки и туда собрать данные из всех источников и потом свернуть чтобы дублей не было?
25 SeregaMW
 
15.11.12
11:48
А так вам не кошерно?
Для каждого строка из ТаблицаЗагрузки Цикл
строка.Артикул = Спавочники.Номенклатура.НайтиПоРеквизиту("Артикул",Строка.АртикулФайл").Артикул;
26 Aprobator
 
15.11.12
11:49
имхается мне, что требуется выполнить создание элементов справочника, если элементов с таким артикулом нет в нем.
27 Reset
 
15.11.12
11:49
Замечательно (25)
28 Singenor
 
15.11.12
11:51
(26) да, я делал на 2 табличных поля, ив се работало, а вот когда все нужно в 1 объеденить не получается
29 Reset
 
15.11.12
11:51
(26) Или возможно сравнение справочника и неких данных в дбф
30 Aprobator
 
15.11.12
11:51
прелестно просто.
31 Singenor
 
15.11.12
12:18
и еще такой вопрос, как сделать переключатели на выделение всех элементов в моей табличном поле, и соответственно на снятие всех элементов в моем табличном поле? Для этого есть колонка пометка, и тамдолжны так же ставиться галочки для одного элемента к примеру
32 Singenor
 
15.11.12
12:19
пометка
-
-
-
-

кнопка пометить все, нажимаем, и все - становятся +
кнопка снять все, нажимаем, и все + становятся -
33 Aprobator
 
15.11.12
12:20
как кнопку нарисовать и исполняемый код к ней присобачить???
34 Aprobator
 
15.11.12
12:20
на командной панели таблицы.
35 Aprobator
 
15.11.12
12:20
я медленно офигеваю нынче
36 Singenor
 
15.11.12
12:22
в ТП, я создал колонку для пометки для удаления, ей получается присваиваем тип число
37 Singenor
 
15.11.12
12:22
ой, то есть булево
38 Aprobator
 
15.11.12
12:24
продолжай, не томи народ то.
39 Singenor
 
15.11.12
12:25
ща, 5 сек, походу понял, не получится продожу)
40 Singenor
 
15.11.12
12:34
сделал для всех элементов, но только не флажок, а просто пишется значение Да или Нет, можно ли сделать флажок для выбора в Тп? я такого не видел вроде еще)
41 Singenor
 
15.11.12
12:35
Процедура ОтметитьНажатие(Элемент)
    Для каждого строка из ТабличноеПоле1 Цикл
        строка.Пометка = Истина;
    КонецЦикла;
КонецПроцедуры
такое вот для всех элементов
42 Reset
 
15.11.12
12:37
Так короче
ТабличноеПоле1.ЗаполнитьЗначения(Истина,"Пометка")
43 Reset
 
15.11.12
12:37
(40) можно, правильно сделав (36)
44 Reset
 
15.11.12
12:38
Правльно выбрав элемент управления и указав данные для него в нужном поле
45 Singenor
 
15.11.12
12:38
(43) тип булев в моей колонке стоит куда выводиться Да или Нет, точнее куда должен флажок выводиться)
46 Шапокляк
 
15.11.12
12:38
(40) Значение в ТП какого типа? Таблица значений? Если да, добавь колонку с типом флажок и в поле свойств Данные флажка впиши наименование колонки.
Может, тебе стоит поиском научиться пользоваться?
47 Singenor
 
15.11.12
12:40
блин, не то открывал, точно, нашел тип флажок) мерси)
48 Singenor
 
15.11.12
12:40
и последний вопрос, как тогда сделать чтобы галочки ставились, а не да или нет писалось в флажок?)
49 Noroving
 
15.11.12
12:43
Зачем циклы? в запросе соедини таблицу из справочника с таблицой из дбф по артикулу и все
50 Шапокляк
 
15.11.12
12:45
(47) Поле "Данные ФЛАЖКА" заполни, а поле "ДАННЫЕ" оставь пустым.
51 Singenor
 
15.11.12
12:46
(5) так и стоит, щас покажу
52 Singenor
 
15.11.12
12:47
53 Шапокляк
 
15.11.12
12:51
А  свойства табличного поля покажи
54 Aprobator
 
15.11.12
12:52
пометка создана в поле, но ее нет в ТЗ связанной с ним. И к гадалке не ходи.
55 Singenor
 
15.11.12
12:52
56 Aprobator
 
15.11.12
12:53
а млин - все сделано
57 Aprobator
 
15.11.12
12:53
отображение н не то
58 Aprobator
 
15.11.12
12:55
было там типа отображать картинку.
(52) не люблю такой вывод свойств. ИМХО, закладками удобнее.
59 Singenor
 
15.11.12
12:57
(58) мне кажется про катинку не подойдет
60 Шапокляк
 
15.11.12
13:00
Я пас. У меня в 8.1. такая штука работает
61 Reset
 
15.11.12
13:03
(52) Как-то ты очень хитро добавил колонку. Там должно быть св-во ЭлементУправления, у тебя нет его почему то.
62 Reset
 
15.11.12
13:06
Правый клик на Табличном поле - добавить колонку -> указать элемент управления Флажок --> очистить поле Данные --> заполнить поле данные флажка
63 Шапокляк
 
15.11.12
13:06
(62) У меня такое же при добавлении флажка. На начальном этапе это поле в свойствах есть, а при повторном открытии нету.
64 Reset
 
15.11.12
13:08
(63) Точно!
Но если стереть данные флажка и заполнить "данные", снова появляется
65 narayanan
 
15.11.12
13:13
у меня в свойствах табличного поля ТипЗначения указано ВнешняяОбработка.ТабличнаяЧасть.Обработка.ТЧПередачаМатВЭкс.Товары НЕ ТаблицаЗначений
66 Reset
 
15.11.12
13:17
(65) А у нас сегодня кошка родила вчера котят
67 narayanan
 
15.11.12
13:20
(66) Предложение синтаксически не согласовано, садись два
68 Reset
 
15.11.12
13:23
(67) Это к Михалкову
69 Singenor
 
15.11.12
17:04
Теперь такой вопрос, есть процедура:

Процедура ДанныеНаименованиеСправочникПриИзменении(Элемент)
   Для каждого Строка из Данные Цикл
       Строка.АртикулСправочник = Строка.Номенклатура.Артикул;
   КонецЦикла;
КонецПроцедуры
В ней происходит следующее: при выборе номенклатуры, в поле Номенклатура, в поле Артикул прописывается артикул выбранной номенклатуры, все работает и все прекрасно, только как сделать, чтобы артикул, который прописывается в АртикулСправочник потом сохранялась?
70 Singenor
 
15.11.12
17:05
(69) а не, не надо
71 Singenor
 
15.11.12
17:36
как сделать запрет на редактирование определенных колонок в ТЧ?
72 Шапокляк
 
15.11.12
17:42
А в колонках Доступность убрать не вариант?
73 Singenor
 
15.11.12
17:53
можно)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn