Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Новый элемент или документ при помощи 1Срр (число прочтений - 4225 )
ShEvA
Экс-Участник


Новый элемент или документ при помощи 1Срр
29. Июля 2008 :: 07:42
Печать  
Уважаемые программеры, подскажите пожайлуста как можно при помощи 1срр создать новый элемент справочника или новый документ. Заранее благодарен за помощь. Озадачен
1С v7.7
1C++ v:1.8.0.2
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новый элемент или документ при помощи 1Срр
Ответ #1 - 29. Июля 2008 :: 07:49
Печать  
поиск в документации и по форуму по слову SQLLock
  

1&&2&&3
Наверх
 
IP записан
 
ShEvA
Экс-Участник


Re: Новый элемент или документ при помощи 1Срр
Ответ #2 - 29. Июля 2008 :: 08:00
Печать  
а я то думаю чего я ничего не могу найти Улыбка, не по тем словам искал

з.ы. от маленького примера не отказался бы  Подмигивание
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новый элемент или документ при помощи 1Срр
Ответ #3 - 29. Июля 2008 :: 08:19
Печать  
Код
Выбрать все
SQLLock=СоздатьОбъект("SQLLock");
SQLLock.УстановитьТипОбъекта("Справочник","КатегорииПроектов");
рс.РежимRPC(1);
Рез.ВыбратьСтроки();
Пока Рез.ПолучитьСтроку()=1 Цикл
	рс.УстановитьТекстовыйПараметр("ИД",SQLLock.НовыйИД());
	рс.УстановитьТекстовыйПараметр("Владелец",ТекущийЭлемент());
	рс.УстановитьТекстовыйПараметр("Категория",Рез.Категория);
	рс.ВыполнитьИнструкцию("
	|insert into $Справочник.КатегорииПроектов
	|(id, parentext, ismark, verstamp, $Справочник.КатегорииПроектов.Категория)
	|values(:ИД, :Владелец, 0, 0, :Категория)");
КонецЦикла;
 

  

1&&2&&3
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Новый элемент или документ при помощи 1Срр
Ответ #4 - 29. Июля 2008 :: 08:23
Печать  
(0) не забудь отдельно про переодические реквизиты и отборы.
(0) Зачем тебе subj?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новый элемент или документ при помощи 1Срр
Ответ #5 - 29. Июля 2008 :: 08:29
Печать  
+1
что бы правильно сделать "прямое" добавление нужно знать структуру (объекты и реляции) БД как свои пять пальцев
  

1&&2&&3
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Новый элемент или документ при помощи 1Срр
Ответ #6 - 29. Июля 2008 :: 08:58
Печать  
trad писал(а) 29. Июля 2008 :: 08:29:
+1
что бы правильно сделать "прямое" добавление нужно знать структуру (объекты и реляции) БД как свои пять пальцев


+2 Если возник вопрос как сабж. в посте - лучше не трогать.

Например для документов нужно добавлять запись в журнал, добавлять в таблицы докуметов (2),
добавлять в таблицу подчиненных,там же разобраться с графами, разобраться с номерами(макс ) и их блокировками, разрулить с транзакциями, если ввод во время работы пользователей ...
  
Наверх
 
IP записан
 
ShEvA
Экс-Участник


Re: Новый элемент или документ при помощи 1Срр
Ответ #7 - 29. Июля 2008 :: 09:39
Печать  
Одну фишку выкупил, если родителя указать не верно то элемент просто не отображается в справочнике, удобно если нужно что то скрыть Улыбка))
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новый элемент или документ при помощи 1Срр
Ответ #8 - 29. Июля 2008 :: 09:42
Печать  
Цитата:
Одну фишку выкупил, если родителя указать не верно то элемент просто не отображается в справочнике, удобно если нужно что то скрыть Улыбка))

ага, а потом ТиИ запустить Улыбка
  

1&&2&&3
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Новый элемент или документ при помощи 1Срр
Ответ #9 - 29. Июля 2008 :: 09:43
Печать  

Цитата:
Одну фишку выкупил, если родителя указать не верно то элемент просто не отображается в справочнике, удобно если нужно что то скрыть Улыбка))

при этом все 1с запросы по группам "летят". прямые запросы тоже неизвесно как поведут себя. Целосность бд тоже под большим вопросом. Выигрыш минимален а граблей по
полной программе.
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Новый элемент или документ при помощи 1Срр
Ответ #10 - 29. Июля 2008 :: 22:05
Печать  
А я делал приращениями и переводами из 36 в 10 и обратно Улыбка
Зато одним запросом все
SQLLock - был не в курсе, стыдно Улыбка
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Новый элемент или документ при помощи 1Срр
Ответ #11 - 06. Августа 2008 :: 20:34
Печать  
Цитата:
SQLLock - был не в курсе, стыдно Улыбка

+1
тоже дело было Улыбка документ создавал... долго пришлось повозиться. с SQLLock было бы полегче, но вся работа уже была выполнена.
имхо, лучше доки штатными средствами создавать.
  
Наверх
IP записан
 
mvgfirst
Full Member
***
Отсутствует


В борьбе бобра с ослом
всегда побеждает бобро!

Сообщений: 152
Местоположение: Украина г. Кривой Рог
Зарегистрирован: 17. Августа 2007
Пол: Мужской
Re: Новый элемент или документ при помощи 1Срр
Ответ #12 - 07. Августа 2008 :: 07:03
Печать  
И еще, ИМХО, SQLLock() некатит если делаешь пакетное добавление строк прямым запросом... Улыбка
Мне пришлось столкнутся... Улыбка
Хотя все равно решил через хранимую процедуру в которой курсором проходил по таблице источнику и вызывал написанную на TransactSQL функцию которая гененрировала новый номер.
И сейчас даже работает...

И кстати могу добавить что если еще и распределенкую юзаешь то надо бы побеспокоится что бы изменения и таблицах для распределенки тоже отразились Подмигивание
  
Наверх
ICQ  
IP записан
 
mvgfirst
Full Member
***
Отсутствует


В борьбе бобра с ослом
всегда побеждает бобро!

Сообщений: 152
Местоположение: Украина г. Кривой Рог
Зарегистрирован: 17. Августа 2007
Пол: Мужской
Re: Новый элемент или документ при помощи 1Срр
Ответ #13 - 07. Августа 2008 :: 07:04
Печать  
Хотя вру... написал INSTEAD TRIGGER. он все и делал Улыбка
  
Наверх
ICQ  
IP записан
 
mvgfirst
Full Member
***
Отсутствует


В борьбе бобра с ослом
всегда побеждает бобро!

Сообщений: 152
Местоположение: Украина г. Кривой Рог
Зарегистрирован: 17. Августа 2007
Пол: Мужской
Re: Новый элемент или документ при помощи 1Срр
Ответ #14 - 07. Августа 2008 :: 07:07
Печать  
Вот он красавчег:
Код
Выбрать все
CREATE TRIGGER INSTEAD_TRIGGER ON [dbo].[SC1804]
INSTEAD OF  INSERT
AS

SET NOCOUNT ON

DECLARE @MAX_ID CHAR(9)
DECLARE @RBD_ID CHAR(3)
DECLARE @T CHAR(9)
DECLARE @P CHAR(9)
DECLARE @C1 NUMERIC(14,3), @C2 NUMERIC(14,3), @C3 NUMERIC(14,3)

-- получаем признак системы
SELECT @RBD_ID = DBSIGN FROM _1SSYSTEM

-- Открыаем курсор для прохода по таблице добавленных
DECLARE ins_curs CURSOR  FOR SELECT SP1807, SP1808, SP1809, SP1810, SP1811 FROM INSERTED
OPEN ins_curs
FETCH NEXT FROM ins_curs INTO @P, @T, @C1, @C2, @C3

WHILE @@FETCH_STATUS = 0
BEGIN

-- Получаем максимальный идентификатор
EXEC _1sp_SC1804_MaxID @MAX_ID OUTPUT
SET @MAX_ID = DBO.CONVERT10TO36(DBO.CONVERT36TO10(LEFT(@MAX_ID,6)) + 1) + @RBD_ID

INSERT SC1804 (ID, ISMARK, VERSTAMP, SP1806, SP1807, SP1808, SP1809, SP1810, SP1811)
VALUES (@MAX_ID, 0, 0, GETDATE(), @P, @T, @C1, @C2, @C3)

FETCH NEXT FROM ins_curs INTO @P, @T, @C1, @C2, @C3
END

CLOSE ins_curs
DEALLOCATE ins_curs
 

  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать