Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: 1С для программиста

  Все выпуски  

RusFAQ.ru: 1С для программиста


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / 1С для программиста

Выпуск № 706
от 21.01.2008, 00:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 383, Экспертов: 48
В номере:Вопросов: 3, Ответов: 6

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 118547: Здравствуйте уважаемые эксперты! 1с 7.7 ТиС. Скажите пожалуйста как сделать проверку уникальности артикула в номенклатуре при записи нового элемента?...
Вопрос № 118588: Для клиент-банка Сбербанка нужно выгружать в формате DBASE III. Подскажите как бы это сделать. Сейчас я выгружаю в DBASE IV (xbase), а потом в Экселе Файл->Сохранить как.., но это не есть хорошо.....
Вопрос № 118593: Как в конфигураторе сделать бы экспорт списка пользователей (с их правами и интерфейсами)? Аналогично сделать экспорт прав каждого набора прав (извините за тавтологию)? Если можно ссылки на утилиты.....

Вопрос № 118.547
Здравствуйте уважаемые эксперты! 1с 7.7 ТиС. Скажите пожалуйста как сделать проверку уникальности артикула в номенклатуре при записи нового элемента?
Отправлен: 15.01.2008, 10:48
Вопрос задала: Darina (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Леутин Андрей
!!!
Здравствуйте, Darina!
самый простой вариант такой - в процедуру ПриЗаписи формы элемента (надеюсь у вас новый элемент добавляется только в форме элемента?), в самое ее начало добавьте следующий код

справНомен = СоздатьОбъект("Справочник.Номенклатура");
Если справНомен.НайтиПоРеквизиту("Артикул", Артикул, 1) = 1 Тогда
Сообщить("такой артикул уже есть");
СтатусВозврата(0); Возврат;
КонецЕсли;

Не забудьте только проверить стоит ли в вашей базе у реквизита "Артикул" признак "Сортировка". Если нет - установите его. Это делается так - щелкаете 2 раза мышкой по реквизиту артикул в окне конфигурации и в открывшейся форме "свойства" перключаетесь на вкладку "дополнительные" там должна стоять галочка напротив надписи "сортировка"
Удачи вам!

Могут быть колизии, ответ от Шахрайчук Владимир Анатольевич более полный.
-----
∙ Отредактировал: Сергей Максименко [Elric] (Профессионал)
∙ Дата редактирования: 15.01.2008, 11:48
Ответ отправил: Леутин Андрей (статус: 1-ый класс)
Ответ отправлен: 15.01.2008, 11:01
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Я делала всё также только моя ошибка была вместо просто Артикул я писала ТекущийЭлемент().Артикул

Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Darina!
Предыдущий ответ интересен, но скорее всего Вы найдете свой собственный элемент. Необходимо при поиске отсечь свой собственный ТекущийЭлемент()
Например, так:
Если ПустоеЗначение(Артикул)=0 Тогда может ведь быть пустой артикул, для служебных ТМЦ
Спрр = СоздатьОбЪект("Справочник.Номенклатура");
Спрр.ВыбратьЭлементыПоРеквизиту("Артикул",Артикул,0,0);
Пока Спрр.ПолучитьЭлемент()=1 Цикл
Если Спрр.ТекущийЭлемент()<>ТекущийЭлемент() Тогда
Предупреждение("Такой артикул уже существует в "+Спрр+"!");
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЦикла;
КонецЕсли;
А насчет сортировки я согласен. Включение сортировки несколько увеличивает размер индексных файлов, но очень ускоряет работу.

Изменил текст в процедуре Предупреждение()< /i>
-----
∙ Отредактировал: Сергей Максименко [Elric] (Профессионал)
∙ Дата редактирования: 15.01.2008, 11:54

Приложение:

Ответ отправил: Шахрайчук Владимир Анатольевич (статус: Практикант)
Ответ отправлен: 15.01.2008, 11:40

Отвечает: Gimmy
Здравствуйте, Darina!
нужно создать процедуру для проверки уникальности в предопределенной процедуре при записи

Приложение:

Ответ отправил: Gimmy (статус: 1-ый класс)
Ответ отправлен: 15.01.2008, 12:37


Вопрос № 118.588
Для клиент-банка Сбербанка нужно выгружать в формате DBASE III. Подскажите как бы это сделать. Сейчас я выгружаю в DBASE IV (xbase), а потом в Экселе Файл->Сохранить как.., но это не есть хорошо..
Отправлен: 15.01.2008, 14:44
Вопрос задал: Гудков Сергей Евгеньевич (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Леутин Андрей
Здравствуйте, Гудков Сергей Евгеньевич!
Никакими средствами объекта XBase изменить формат записи к сожалению нельзя. Я бы предложил воспользоваться прямыми запросами
Что вроде такого

//изменим запись в реестре чтобы коректно считать dbf
wsh = СоздатьОбъект("WScript.Shell"); файл
wsh.RegWrite("HKEY_LOCAL_MACHINESOFTWAREMicrosoftJet3.0EnginesXbaseDataCodePage","ANSI","REG_SZ");
wsh.RegWrite("HKEY_LOCAL_MACHINESOFTWAREMicrosoftJet3.0EnginesXbaseBDE",2,"REG_DWORD");

//создадим ОЛЕ-объект
DBConn = СоздатьОбъект("ADODB.Connection");
DBConn.Open("Provider=Microsoft.Jet.OLEDB.3.0;" +
"Data Source=" + КаталогИБ() + ";" +
"Extended Properties=""DBASE III;"";");
// создадим запрос
ТекстЗапроса = "CREATE TABLE <TABLE-NAME>
( <COLUMN name> <DATA type>[(<SIZE>)],
<COLUMN name> <DATA type> [(<SIZE>)] ... )"; //сюда пишите запрос на сиквеле, создающий Ваш файл.
//Я его не написал. потому что не знаю ни структуры выходной таблицы ни источников данных
//я думаю написать такой запрос никакой сложности не составит

//выполним запрос
Persons = DBConn.Execute(ТекстЗапроса);
//закроем базу и вернем на место реестр
DBConn.Close();
wsh.RegWrite("HKLMSOFTWAREMicrosoftJet4.0EnginesXbaseDataCodePage", "OEM","REG_SZ");


вот примерно так
Ответ отправил: Леутин Андрей (статус: 1-ый класс)
Ответ отправлен: 15.01.2008, 15:18
Оценка за ответ: 3
Комментарий оценки:
Н-да, наворот. Тогда можно сделать пустой dbf в формате DBASE III (шаблон), копировать и заполнять из 1С.


Вопрос № 118.593
Как в конфигураторе сделать бы экспорт списка пользователей (с их правами и интерфейсами)? Аналогично сделать экспорт прав каждого набора прав (извините за тавтологию)? Если можно ссылки на утилиты..
Отправлен: 15.01.2008, 15:47
Вопрос задал: Гудков Сергей Евгеньевич (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Dmitry Stashenko
Здравствуйте, Гудков Сергей Евгеньевич!

Ну по экспорту прав каждого набора прав может помочь Конфигратор - Конфигурация - Описание структуры метаданных, и внизу права будут, а по экспорту списка пользователей - можно разобрать файлик users.usr например.
Ответ отправил: Dmitry Stashenko (статус: Студент)
Ответ отправлен: 15.01.2008, 22:29
Оценка за ответ: 5
Комментарий оценки:
То что надо!! Мне нужно было разгрести права на метаданные. Большое спасибо!

Отвечает: Nikakoy
Здравствуйте, Гудков Сергей Евгеньевич!
Для баз с одинаковыми конфигурациями перенос пользователей осуществляю копированием каталога UsrDef. Если для пользователей указаны каталоги,то формирую такие же в базе-приемнике.
По поводу наборов прав. Для конфигураций с одинаковым набором элементов(структурой) можно воспользоваться стандартными CTRL+C в базе источнике и CTRL+V в приемнике......
При структурах различающихся незначительно тоже возможно. Переносится основа набора, а изменения вносятся по ситуации....
Ответ отправил: Nikakoy (статус: 1-ый класс)
Ответ отправлен: 16.01.2008, 22:40
Оценка за ответ: 2
Комментарий оценки:
Я же не спрашивал "как перенести пользователей"! Я спрашивал "как сделать экспорт". У меня задача была проанализировать права пользователей, т. е. отдать главбуху список пользователей с правами на редактирование метаданных.


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.70 от 17.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное