Имя: Пароль:
1C
1С v8
1C, Delphi и ТаблицаЗначений
,
0 igel1969
 
23.12.14
22:45
Здравствуйте!
Надо через Delphi создать в 1С Таблицу значений.
В 1С в примерах везде
ТаблицаЗначений = Новый ТаблицаЗначений;

Подскажите, если кто знает - как вот это "НОВЫЙ", блин в Delphi выглядит ???????????? всю голову уже сломал...
1 Garykom
 
гуру
23.12.14
22:47
(0) New ?
2 Chai Nic
 
23.12.14
22:48
Вот интересную статью нагуглил
http://d1cv8.narod.ru/top_003/d1cv8_20070929_001/d1cv8_20070929_001.htm
3 Garykom
 
гуру
23.12.14
22:51
(2) думаешь можно осилить стоко букв?
4 igel1969
 
23.12.14
22:55
(2) извините, там ответ не нашел ((( я уж давно и свободно создаю в 1С из дельфи любые документы, справочники, пользователей... но вот вздумалось разработчику нашей конфигурации одну херню засунуть в таблицузначений (регистры сведений, один из ресурсов имеет тип ХранилищеЗначений и там хранится ТаблицаЗначений. А мне ее надо из Дельфи заполнить своими данными. вот и маюсь. а в приведенной вами статье только самые основы, которые я уже давно прошел.
5 Chai Nic
 
23.12.14
22:57
Com1c.NewObject("ТаблицаЗначений") - не работает?
6 Garykom
 
гуру
23.12.14
22:57
(4) эээ? о так это очередная операция на гландах через задний проход?
7 igel1969
 
23.12.14
22:58
(1) бабушка на перекрестке:
- сынок, какой цвет на светофоре горит?
- зеленый.
- а переведи, пожалуйста
- ну, типа, грин?

И что мне с этим New делать?
написать в Дельфи  tz := New ТаблицаЗначений
или tz := New('ТаблицаЗначений')
в любом случае Дельфа меня нахрен пошлет и будет права
8 igel1969
 
23.12.14
23:00
(5) пока сработало, что будет с этим дальше - надо время, чтобы код продолжить. спасибо!!!
9 Chai Nic
 
23.12.14
23:00
(7) См. (5)
10 igel1969
 
23.12.14
23:01
(9) см (8) :)
11 Адский плющ
 
23.12.14
23:03
Delphi это же борландовская VCL, которую они бросили в своём Вuilder... Или я отстал от времени и теперь Delphi не только не только платформа для программистов, которые не осилили стандартный событийный цикл сраного вендового приложения?
12 Garykom
 
гуру
23.12.14
23:03
(8) шеф, при наличии присутствия неплохих знаний в дельфях, изучить 1с раз плюнуть (можешь даже писать на агглицком как привык)

т.е. а не проще ли из 1С данные затягивать из базу/файла напрямую? чем использовать внешнее соединение ?
13 Chai Nic
 
23.12.14
23:04
(11) Дельфи ничуть не хуже этих ваших дотнетов.. даже лучше - ибо умеет создавать нативные экзешники, не требующие библиотек на сотню мег..
14 Garykom
 
гуру
23.12.14
23:05
(13) а с++ еще лучше потому что даже десятков мег не надо да?
15 Адский плющ
 
23.12.14
23:07
Странно, почему Delphi, возобаладал над C++ Builder?

Потому что все сишники ушли в визуал?



(13-14) Да разразится срач сишников против паскалевцев (не все поклонники дельфи знают, что их синтаксис пошел от языка паскаль, но не столь важно) !

Тока не взлетит. Тут убогие одинэсники тока.
16 igel1969
 
23.12.14
23:07
(12) ну это разовая задача массовой переброски данных из не1Сной базы в 1С. при переброске надо делать сложные запросы, сложную обработку данных, а в 1С уже класть только готовый результат. вот запрашивать и обрабатывать данные мне пока легче в Дельфи, тем более что эти данные к 1С не имеют отношения. Вот перенесу все данные и с нового года начну работать только в 1С, там уже и опыт поднаберется
17 Garykom
 
гуру
23.12.14
23:08
(15) в натуре обидел...
18 igel1969
 
23.12.14
23:11
(14) я очень жалею, что не с-шник. не знаю, чего прилип в свое время к этому паскалю. а дальше пошло по накатанной - требуется решить быстро и качественно задачу, а быстро могу только на паскале/дельфи, на с надо напрягаться. самый прикол, пока учился в универе (1986-1992гг) два раза проходили с, два раза сдавали экзамены и оба раза пятерки в группе были только у меня и у тех, кому я помогал. а как на первой работе начал писать на паскале, так и лень перейти на с уже 20 лет (((((
19 Garykom
 
гуру
23.12.14
23:13
(18) сразу на С# переходи и придется только к {...} вместо begin...end привыкнуть
20 Garykom
 
гуру
23.12.14
23:13
(19)+ java сразу оптом идет ))
21 igel1969
 
23.12.14
23:15
по поводу срача: я начинал учиться на дневном мехмате в 1986. там проходили Basic и PL-1 (это такой язык программирования, не имеющий отношения к ораклу), затем перевелся на вечерний ВМК и там проходили Assembler и С. Все экзамены сдавал только на 5-ки (связанные с программированием). А как-то меня друг, который вообще со мной не учился обратился с просьбой сделать прогу на Паскале. Я взял в руки учебник и через час написал ему прогу. И так на нем и остался ))))))
22 Адский плющ
 
23.12.14
23:16
Да вы чо шутите.

На фортране можно программированию выучиться.

Вопрос та не в синтаксисе.

Не, мастерству нужно год-три набираться, всяким приколам. Причем не по учебникам - а по реальным задачам.


Но всех кто предлагает тупо язык изучить - посылайте нах.
23 Garykom
 
гуру
23.12.14
23:20
(22) NS?
24 igel1969
 
23.12.14
23:24
(5) еще раз спасибо, все работает - ТЗ создалась, колонки добавились, строка добавилась и значения строки заполнились )))))
25 Адский плющ
 
23.12.14
23:37
(23) WTF?
26 Garykom
 
гуру
23.12.14
23:41
27 Chai Nic
 
24.12.14
08:09
(14) Си(++) - это переносимый ассемблер для написания драйверов и ядра ОС. Ни для чего другого он не предназначен. А попытки его использовать для прикладного программирования привели к массовым дырам и уязвимостям в ПО. Слишком уж легко он позволяет прострелить себе ногу)
28 ilpar
 
24.12.14
08:26
(16) такие задачи из 1С делаются легко и непринужденно
29 ilpar
 
24.12.14
08:27
(28) какая разница, где селекты писать?
30 Rie
 
24.12.14
08:34
(0) Нескромный вопрос - а зачем в _Delphi_ создавать таблицу значений (чужой для Delphi объект), если, как сказано выше, обрабатываться данные будут средствами Delphi, а в базу данных таблица значений всё равно не попадёт (и никаких select'ов к ней не сделать)?
А так - было ж отвечено в (1) - NewObject (есть такой метод у соединения с 1С).
31 igel1969
 
24.12.14
12:40
(30) Вы невнимательно читали. Как раз найденные и обработанные данные и должны попасть в базу данных 1С, так как разработчик конфигурации применил в одном регистре сведений ресурс типа ХранилищеЗначения где хранит ТаблицуЗначений. вот как сформировать в Дельфи таблицузначений и запихнуть ее в хранилище - как раз и была проблема, так как это чуждые для Дельфи типы переменных
32 igel1969
 
24.12.14
12:42
Дополнение: После того, как мне удалось с помощью ваших подсказок создать таблицуЗначений, ее еще следовало поместить в таблицу значений. Пришлось помучится, хотя в итоге оказалось, что в самом начале я был на правильном пути, но надо писать на ХранилищеЗначений, а ХранилищеЗначения, в единственном числе. Конечный и корректно работающий код на Дельфи теперь выглядит так:

Nas := Connection.РегистрыСведений.кпкСведенияАгента.СоздатьНаборЗаписей();
                     Nas.Отбор.Объект.Установить(FIZ.Ссылка);
tt := Nas.Добавить();
tt.Объект := FIZ.Ссылка;
tt.КПК := KPK.Ссылка;
tt.АПСПапка := string(agent2.FieldValues['Водительское удостоверение']);
tt.СписокСкладов := Connection.Справочники.кпкСпискиСкладов.НайтиПоНаименованию('Основной', True);
tt.ОсновнаяФирма := Org.Ссылка;
tt.ПередвижнойСклад := Connection.Справочники.Склады.НайтиПоНаименованию(string(sklad2.FieldValues['Наименование склада']), True);
tt.ОсновнойСклад := Connection.Справочники.Склады.НайтиПоНаименованию('ГОЛУБЯТНИКОВА', True);
ka := Connection.NewObject('ТаблицаЗначений');
ka.Колонки.Добавить('Организация');
ka.Колонки.Добавить('Касса');
Str := ka.Добавить();
Str.Организация := Org.Ссылка;
Str.Касса := Connection.Справочники.Кассы.НайтиПоНаименованию(string(sklad2.FieldValues['Наименование кассы']), True);
hz := Connection.NewObject('ХранилищеЗначения', ka);
tt.КассыАгента := hz;
Nas.Записать();
33 igel1969
 
24.12.14
12:43
(32) не в таблицу, а в хранилищезначения надо было поместить, опечатался в первом предложении
34 Rie
 
24.12.14
14:06
(32) И как тут со ссылочной целостностью дела обстоят? Или это уже не модно?
35 igel1969
 
24.12.14
14:40
(34) нормально обстоят, никаких проблем не возникало.