powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / ввод данных
22 сообщений из 22, страница 1 из 1
ввод данных
    #36199696
Здравствуйте! Помогите!
В справочник сотрудников (саморазработка) необходимо добавить данные ИНН, связь по коду сотрудника, данные по ИНН в акцесе. т.е. мне надо добавить поле ИНН в справочник Сотрудники и загнать в это поле данные. Вообще не знаю как делать, не бросайте, у меня через 10 минут отрубят инет, но я очень-приочень буду ждать вашей помощи и завтра с утра все посмотрю. если вы мне не поможите - то мне кирдык...
...
Рейтинг: 0 / 0
ввод данных
    #36199735
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ничонепонялтебекирдык
...
Рейтинг: 0 / 0
ввод данных
    #36199769
Не надо мне кирдык, пожалуйста!!!
В общем в Справочник Сотрудники надо добавить поле ИНН, этого поля раньше там не было, таблица соответствия КодСотрудника - ИНН находится в акцессе и надо из акцесса подтянуть по коду сотрудника данные ИНН в справочник Сотрудники
...
Рейтинг: 0 / 0
ввод данных
    #36200144
LogvinovSerj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В документе этого справочника на вкладке данные добавляешь реквизит ИНН (со своим типом данных). Потом в формах (списка, документа) где нужен добавляешь элемент управления. А для того чтобы туда подтянуть из access надо писать обработчик специальный, который соединялся бы с базой access и вытягивал бы тебе нужный инн
...
Рейтинг: 0 / 0
ввод данных
    #36200519
LogvinovSerjА для того чтобы туда подтянуть из access надо писать обработчик специальный, который соединялся бы с базой access и вытягивал бы тебе нужный инн
Вот именно этот момент программы мне и нужен, я не знаю как это делается вообще... В этом и есть смысл вопроса
...
Рейтинг: 0 / 0
ввод данных
    #36200527
причем сам коннект к базе есть, вот он:

Если ЭлементыФормы.ПутьКФайлу.Значение = "" Тогда
Предупреждение("Не выбрана база данных");
Возврат;
КонецЕсли;

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();
Возврат;
КонецПопытки;

а вот добавить соответствие не знаю...
...
Рейтинг: 0 / 0
ввод данных
    #36200603
Процедура КнопкаВыполнитьНажатие(Кнопка)


Если ЭлементыФормы.ПутьКФайлу.Значение = "" Тогда
Предупреждение("Не выбрана база данных");
Возврат;
КонецЕсли;

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);
спр.Записать();
конецЦикла;


КонецПроцедуры

Помогите, пожалуйста модернизировать чтобы прога искала соответствие по КодСотрудника в справочнике Абоненты, а то прога работает, только всем выставляет самый первый ИНН
...
Рейтинг: 0 / 0
ввод данных
    #36200611
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
покури метод .НайтиПоКоду() для справочника
...
Рейтинг: 0 / 0
ввод данных
    #36200638
Господин ПЖ, я уже от волнения ни фига не понимаю, пожалуйста, в текст программы вставьте этот метод как надо, где написать найти ко коду? какие параметры передать? что-то совсем не получается... :(
...
Рейтинг: 0 / 0
ввод данных
    #36200671
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
йопт... ты выборку из акцесса обходи (а не справочник), а в ней:

//типа пока НаборЗаписей.Следующий() цикл

спр = Справочники.Абоненты.НайтиПоКоду(НаборЗаписей.Fields("Код").Value);

Если Не спр.Пустая() Тогда

лОбъект = спр.ПолучитьОбъект();
лОбъект.ИНН= Строка(НаборЗаписей.Fields("ИНН").Value); //СсылкаНаНП;
лОбъект.Наименование=лОбъект.Наименование+", инн: "+Строка(НаборЗаписей.Fields("ИНН").Value);

лОбъект.Записать();

КонецЕсли;

// типа конец цикла по НаборЗаписей
...
Рейтинг: 0 / 0
ввод данных
    #36200674
Господин ПЖ, Спасибо Вам Огромное!!! сейчас буду делать!!!
...
Рейтинг: 0 / 0
ввод данных
    #36200865
На строчку

Пока НаборЗаписей.Следующий() Цикл

ругается вот как:
{Обработка.ИННСправочникАбоненты.Форма.Форма(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 поля - Лицсчет и ИНН, соответствие по Лицсчет, добавить надо ИНН, что не правильно? (
...
Рейтинг: 0 / 0
ввод данных
    #36200888
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин... я специально заремемарил (//) код обхода выборки - лень было вспоминать

Попытка
НаборЗаписей.MoveFirst();
Исключение //нет записей в рекордсете
НаборЗаписей.Close();
Возврат;
КонецПопытки;
Пока НаборЗаписей.EOF()=0 Цикл
ИНН = НаборЗаписей.Fields("INN").Value;
//ну и т.д.
НаборЗаписей.MoveNext();
КонецЦикла;
НаборЗаписей.Close();
...
Рейтинг: 0 / 0
ввод данных
    #36200894
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Лицсчет и ИНН, соответствие по Лицсчет

гы... тогда есть мнение что .НайтиПоКоду() не ваш случай... сомнительно что в коде элемента справочника записан лиц. счет...
...
Рейтинг: 0 / 0
ввод данных
    #36201033
Господин ПЖ>>Лицсчет и ИНН, соответствие по Лицсчет

гы... тогда есть мнение что .НайтиПоКоду() не ваш случай... сомнительно что в коде элемента справочника записан лиц. счет...

Я получается не правильно выразилась, но в общем вот такая ситуация - единственное поле по которому можно прикрепить ИНН - это лицевой счет сотрудника, Лицевой счет это просто реквизит справочника, разработка совсем не моя, просто на предприятии у нас есть такая задача и ее надо решить, программа вертится внутри предприятия и никому кроме нас не нужна, но ее срочно нужно сделать, а у меня не получается... я вообще 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();


КонецПроцедуры
...
Рейтинг: 0 / 0
ввод данных
    #36201060
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы тоже повис...

НаборЗаписей.MoveNext(); где??!!
...
Рейтинг: 0 / 0
ввод данных
    #36201667
Господин ПЖ, ой... 8)
...
Рейтинг: 0 / 0
ввод данных
    #36201779
теперь не зависает, но и ничего не записывает, может правда надо не по Коду, ведь ЛицевойСчет - просто реквизит... а как тогда? просто все поле ИНН пустое и даже в наименование ничего не записывает...
...
Рейтинг: 0 / 0
ввод данных
    #36201793
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Не спр.Пустая() Тогда

не пускает. Ничего не нашел - и привет горячий...
...
Рейтинг: 0 / 0
ввод данных
    #36201836
Господин ПЖЕсли Не спр.Пустая() Тогда

не пускает. Ничего не нашел - и привет горячий...

Заремила Если выдает ошибку -
{Обработка.КодЛицевогоСчетаСправочникАбонентыАИИСКУЭ.Форма.Форма(50)}: Ошибка при вызове метода контекста (ПолучитьОбъект): Элемент не выбран!
лОбъект = спр.ПолучитьОбъект();
по причине:
Элемент не выбран!
...
Рейтинг: 0 / 0
ввод данных
    #36201965
пробовала по реквизиту:
спр = Справочники.Абоненты.НайтиПоРеквизиту(Справочники.Абоненты.ЛицевойСчет, НаборЗаписей.Fields("Лицсчет").Value);
выдает ошибку:
{Обработка.ИННСправочникАбоненты.Форма.Форма(38)}: Поле объекта не обнаружено (ЛицевойСчет)
спр = Справочники.Абоненты.НайтиПоРеквизиту(Справочники.Абоненты.ЛицевойСчет, НаборЗаписей.Fields("Лицсчет").Value);
...
Рейтинг: 0 / 0
ввод данных
    #36203115
Господин ПЖ, Спасибо Вам Огромное!! ! У меня все получилось!!! Но только пришлось сделать соответствие между кодом сотрудника, его лицевым счетом и ИНН, тогда по коду все совпадает, а как я изначально планировала тогда надо было наверняка делать что-то типа НайтиПоРеквизиту, но это соответствие у меня так и не получилось, хотя и пример смотрела, но что-то не поняла, вот такую строчку писала:

Справочники.Абоненты.НайтиПоРеквизиту(Справочники.Абоненты.ЛицевойСчет, НаборЗаписей.Fields("Лицсчет").Value);

но выходило на ошибку, в принципе мне это уже не надо, но на будущее интересно где я допустила ошибку, если у Вас будет время, напишите, пожалуйста как надо и где я допустила ошибку чтобы искать по реквизиту, заранее благодарна.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / ввод данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]