|
|
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Помогите! В справочник сотрудников (саморазработка) необходимо добавить данные ИНН, связь по коду сотрудника, данные по ИНН в акцесе. т.е. мне надо добавить поле ИНН в справочник Сотрудники и загнать в это поле данные. Вообще не знаю как делать, не бросайте, у меня через 10 минут отрубят инет, но я очень-приочень буду ждать вашей помощи и завтра с утра все посмотрю. если вы мне не поможите - то мне кирдык... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2009, 17:14 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
Не надо мне кирдык, пожалуйста!!! В общем в Справочник Сотрудники надо добавить поле ИНН, этого поля раньше там не было, таблица соответствия КодСотрудника - ИНН находится в акцессе и надо из акцесса подтянуть по коду сотрудника данные ИНН в справочник Сотрудники ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2009, 17:34 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
В документе этого справочника на вкладке данные добавляешь реквизит ИНН (со своим типом данных). Потом в формах (списка, документа) где нужен добавляешь элемент управления. А для того чтобы туда подтянуть из access надо писать обработчик специальный, который соединялся бы с базой access и вытягивал бы тебе нужный инн ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2009, 21:11 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
LogvinovSerjА для того чтобы туда подтянуть из access надо писать обработчик специальный, который соединялся бы с базой access и вытягивал бы тебе нужный инн Вот именно этот момент программы мне и нужен, я не знаю как это делается вообще... В этом и есть смысл вопроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 09:50 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
причем сам коннект к базе есть, вот он: Если ЭлементыФормы.ПутьКФайлу.Значение = "" Тогда Предупреждение("Не выбрана база данных"); Возврат; КонецЕсли; MBD = Новый COMОбъект("ADODB.CONNECTION"); Попытка MBD.Open("Driver={Microsoft Access Driver (*.mdb)};Dbq="+ЭлементыФормы.ПутьКФайлу.Значение+";Uid=Admin;Pwd="); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; ТекстСелект = "SELECT * FROM Abonent"; НаборЗаписей = Новый COMОбъект("ADODB.RecordSet"); Попытка НаборЗаписей=MBD.Execute(ТекстСелект); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Попытка НаборЗаписей.MoveFirst(); Исключение //табилца пустая Сообщить(ОписаниеОшибки()); НаборЗаписей.Close(); Возврат; КонецПопытки; а вот добавить соответствие не знаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 09:53 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
Процедура КнопкаВыполнитьНажатие(Кнопка) Если ЭлементыФормы.ПутьКФайлу.Значение = "" Тогда Предупреждение("Не выбрана база данных"); Возврат; КонецЕсли; MBD = Новый COMОбъект("ADODB.CONNECTION"); Попытка MBD.Open("Driver={Microsoft Access Driver (*.mdb)};Dbq="+ЭлементыФормы.ПутьКФайлу.Значение+";Uid=Admin;Pwd="); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; ТекстСелект = "SELECT * FROM Abonent"; НаборЗаписей = Новый COMОбъект("ADODB.RecordSet"); Попытка НаборЗаписей=MBD.Execute(ТекстСелект); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Попытка НаборЗаписей.MoveFirst(); Исключение //табилца пустая Сообщить(ОписаниеОшибки()); НаборЗаписей.Close(); Возврат; КонецПопытки; запрос = новый запрос("выбрать ссылка из Справочник.Абоненты"); выборка = запрос.выполнить().Выбрать(); пока выборка.Следующий() цикл спр=выборка.ссылка.ПолучитьОбъект(); спр.ИНН= Строка(НаборЗаписей.Fields("ИНН").Value); //СсылкаНаНП; спр.Наименование=спр.Наименование+", инн: "+Строка(НаборЗаписей.Fields("ИНН").Value); спр.Записать(); конецЦикла; КонецПроцедуры Помогите, пожалуйста модернизировать чтобы прога искала соответствие по КодСотрудника в справочнике Абоненты, а то прога работает, только всем выставляет самый первый ИНН ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 10:35 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
покури метод .НайтиПоКоду() для справочника ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 10:37 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
Господин ПЖ, я уже от волнения ни фига не понимаю, пожалуйста, в текст программы вставьте этот метод как надо, где написать найти ко коду? какие параметры передать? что-то совсем не получается... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 10:42 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
йопт... ты выборку из акцесса обходи (а не справочник), а в ней: //типа пока НаборЗаписей.Следующий() цикл спр = Справочники.Абоненты.НайтиПоКоду(НаборЗаписей.Fields("Код").Value); Если Не спр.Пустая() Тогда лОбъект = спр.ПолучитьОбъект(); лОбъект.ИНН= Строка(НаборЗаписей.Fields("ИНН").Value); //СсылкаНаНП; лОбъект.Наименование=лОбъект.Наименование+", инн: "+Строка(НаборЗаписей.Fields("ИНН").Value); лОбъект.Записать(); КонецЕсли; // типа конец цикла по НаборЗаписей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 10:51 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
Господин ПЖ, Спасибо Вам Огромное!!! сейчас буду делать!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 10:53 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
На строчку Пока НаборЗаписей.Следующий() Цикл ругается вот как: {Обработка.ИННСправочникАбоненты.Форма.Форма(74)}: Метод объекта не обнаружен (Следующий) Пока НаборЗаписей.Следующий() Цикл пробовала вот так: Пока НаборЗаписей.EOF()=0 Цикл висела где-то час, пока я ее не сорвала, данные не изменились... что делать? не бросайте!!! вот полный код: Процедура КнопкаВыполнитьНажатие(Кнопка) Если ЭлементыФормы.ПутьКФайлу.Значение = "" Тогда Предупреждение("Не выбрана база данных"); Возврат; КонецЕсли; MBD = Новый COMОбъект("ADODB.CONNECTION"); Попытка MBD.Open("Driver={Microsoft Access Driver (*.mdb)};Dbq="+ЭлементыФормы.ПутьКФайлу.Значение+";Uid=Admin;Pwd="); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; ТекстСелект = "SELECT * FROM Abonent"; НаборЗаписей = Новый COMОбъект("ADODB.RecordSet"); Попытка НаборЗаписей=MBD.Execute(ТекстСелект); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Попытка НаборЗаписей.MoveFirst(); Исключение //табилца пустая Сообщить(ОписаниеОшибки()); НаборЗаписей.Close(); Возврат; КонецПопытки; Пока НаборЗаписей.Следующий() Цикл спр = Справочники.Абоненты.НайтиПоКоду(НаборЗаписей.Fields("Лицсчет").Value); Если Не спр.Пустая() Тогда лОбъект = спр.ПолучитьОбъект(); лОбъект.КодЛицевогоСчета= Строка(НаборЗаписей.Fields("ИНН").Value); //СсылкаНаНП; лОбъект.Наименование=лОбъект.Наименование+", инн: "+Строка(НаборЗаписей.Fields("ИНН").Value); лОбъект.Записать(); КонецЕсли; КонецЦикла; НаборЗаписей.Close(); КонецПроцедуры В акцессе 2 поля - Лицсчет и ИНН, соответствие по Лицсчет, добавить надо ИНН, что не правильно? ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 11:51 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
блин... я специально заремемарил (//) код обхода выборки - лень было вспоминать Попытка НаборЗаписей.MoveFirst(); Исключение //нет записей в рекордсете НаборЗаписей.Close(); Возврат; КонецПопытки; Пока НаборЗаписей.EOF()=0 Цикл ИНН = НаборЗаписей.Fields("INN").Value; //ну и т.д. НаборЗаписей.MoveNext(); КонецЦикла; НаборЗаписей.Close(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 12:00 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
>>Лицсчет и ИНН, соответствие по Лицсчет гы... тогда есть мнение что .НайтиПоКоду() не ваш случай... сомнительно что в коде элемента справочника записан лиц. счет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 12:02 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
Господин ПЖ>>Лицсчет и ИНН, соответствие по Лицсчет гы... тогда есть мнение что .НайтиПоКоду() не ваш случай... сомнительно что в коде элемента справочника записан лиц. счет... Я получается не правильно выразилась, но в общем вот такая ситуация - единственное поле по которому можно прикрепить ИНН - это лицевой счет сотрудника, Лицевой счет это просто реквизит справочника, разработка совсем не моя, просто на предприятии у нас есть такая задача и ее надо решить, программа вертится внутри предприятия и никому кроме нас не нужна, но ее срочно нужно сделать, а у меня не получается... я вообще 1С только месяцев 4-5 назад увидела... а уже такое заставляют делать... вот как переделала и все равно не получается - виснет и все, срываю программу минут через 20 и ни одной заполненной записи... вот код: Процедура КнопкаВыполнитьНажатие(Кнопка) Если ЭлементыФормы.ПутьКФайлу.Значение = "" Тогда Предупреждение("Не выбрана база данных"); Возврат; КонецЕсли; MBD = Новый COMОбъект("ADODB.CONNECTION"); Попытка MBD.Open("Driver={Microsoft Access Driver (*.mdb)};Dbq="+ЭлементыФормы.ПутьКФайлу.Значение+";Uid=Admin;Pwd="); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; ТекстСелект = "SELECT * FROM Abonent"; НаборЗаписей = Новый COMОбъект("ADODB.RecordSet"); Попытка НаборЗаписей=MBD.Execute(ТекстСелект); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Попытка НаборЗаписей.MoveFirst(); Исключение //табилца пустая НаборЗаписей.Close(); Возврат; КонецПопытки; //////////////////////////////////////////////////////////////////////////////////////////////// Пока НаборЗаписей.EOF()=0 Цикл ИНН = НаборЗаписей.Fields("ИНН").Value; спр = Справочники.АдресаАбонентыАИИСКУЭ.НайтиПоКоду(НаборЗаписей.Fields("Лицсчет").Value); Если Не спр.Пустая() Тогда лОбъект = спр.ПолучитьОбъект(); лОбъект.ИНН= Строка(НаборЗаписей.Fields("ИНН").Value); //СсылкаНаНП; лОбъект.Наименование=лОбъект.Наименование+", инн: "+Строка(НаборЗаписей.Fields("ИНН").Value); лОбъект.Записать(); Сообщить (лОбъект.Наименование); КонецЕсли; КонецЦикла; НаборЗаписей.Close(); КонецПроцедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 12:42 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
я бы тоже повис... НаборЗаписей.MoveNext(); где??!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 12:51 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
теперь не зависает, но и ничего не записывает, может правда надо не по Коду, ведь ЛицевойСчет - просто реквизит... а как тогда? просто все поле ИНН пустое и даже в наименование ничего не записывает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 15:32 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
Если Не спр.Пустая() Тогда не пускает. Ничего не нашел - и привет горячий... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 15:36 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
Господин ПЖЕсли Не спр.Пустая() Тогда не пускает. Ничего не нашел - и привет горячий... Заремила Если выдает ошибку - {Обработка.КодЛицевогоСчетаСправочникАбонентыАИИСКУЭ.Форма.Форма(50)}: Ошибка при вызове метода контекста (ПолучитьОбъект): Элемент не выбран! лОбъект = спр.ПолучитьОбъект(); по причине: Элемент не выбран! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 15:46 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
пробовала по реквизиту: спр = Справочники.Абоненты.НайтиПоРеквизиту(Справочники.Абоненты.ЛицевойСчет, НаборЗаписей.Fields("Лицсчет").Value); выдает ошибку: {Обработка.ИННСправочникАбоненты.Форма.Форма(38)}: Поле объекта не обнаружено (ЛицевойСчет) спр = Справочники.Абоненты.НайтиПоРеквизиту(Справочники.Абоненты.ЛицевойСчет, НаборЗаписей.Fields("Лицсчет").Value); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 16:16 |
|
||
|
ввод данных
|
|||
|---|---|---|---|
|
#18+
Господин ПЖ, Спасибо Вам Огромное!! ! У меня все получилось!!! Но только пришлось сделать соответствие между кодом сотрудника, его лицевым счетом и ИНН, тогда по коду все совпадает, а как я изначально планировала тогда надо было наверняка делать что-то типа НайтиПоРеквизиту, но это соответствие у меня так и не получилось, хотя и пример смотрела, но что-то не поняла, вот такую строчку писала: Справочники.Абоненты.НайтиПоРеквизиту(Справочники.Абоненты.ЛицевойСчет, НаборЗаписей.Fields("Лицсчет").Value); но выходило на ошибку, в принципе мне это уже не надо, но на будущее интересно где я допустила ошибку, если у Вас будет время, напишите, пожалуйста как надо и где я допустила ошибку чтобы искать по реквизиту, заранее благодарна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 08:54 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=36201667&tid=1523313]: |
0ms |
get settings: |
12ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 538ms |

| 0 / 0 |
