Персональная страница Федора Езеева | ||||||||||||||||||
|
Дальше
Назад
Содержание
Содержимое страницы перенесено на официальный сайт компонентыFAQ по 1С++.Вопросы новичков
Q.
При выполнении отчета пишет мне вот такое: "catch (_com_error& er)".
Q.
Вообще ничего не понимаю. Как начать, и если можно - по шагам.
Q.
Подсоединяю чужой класс, а мне говорит "Форма<<?>>...; Переменная не определена"
Перем Форма Экспорт; //Для отладки классов 1С++ Общие вопросы
Q.
Где скачать самую последнюю версию 1С++?
Q.
Где взять документацию к компоненте?
Q.
А где взять визуальный редактор к 1С++?
Q.
Пытаюсь установить Visual 1C++, все делаю по инструкции, а мне сообщается, что не хватает какого-то config.tlb.
Где его взять?
Q. Скачал свежую версию 1С++, а там als документация от версии 1.5.0.3 (или вообще нет).
Почему так, и где взять свежую?
Q. Установил компоненту 1С++, прописал в глобальник ЗагрузитьВнешнююКомпоненту("1cpp.dll"), а у меня теперь 1С валится, говорит, что "память не может быть read". ОС - Windows NT/2000/XP. Под '95/'98/ME все нормально. A. Во время первого запуска компонента регистрируется в реестре. Этот процесс должен происходить с правами администратора локальной машины.
Q.
Я загружаю одну версию 1С++ (смотрю в свойствах файла), а загружается другая (смотрю в настройках 1С).
Кто виноват и что делать?
Q.
Я удалил ненужную мне версию компоненты и теперь при запуске 1С-Предприятия выдается следующее сообщение:
"Ошибка при создании объекта из компоненты \\Адрес_сервера\Директория_БД\1CPP.dll
(отсутствует интерфейсIInitDone)". Что делать теперь?
Q.
У меня 100 компьютеров в сети - я не могу на каждой зайти администратором.
Хочу знать, что конкретно 1С++ пишет в реестр, а дальше я как-нибудь разберусь.
Q.
А где можно посмотреть на реальные примеры использования 1С++?
Q.
Документация и примеры - это конечно, хорошо, а где можно с людьми пообщаться?
Q.
Насколько полна объектная модель 1С++?
Специализированные вопросы
Q.
Создал defcls.prm, написал там одну строку, а 1С - хоть бы хны.
Q.
Добавил пустую строчку - а все равно, ничего не произошло.
Q.
Чем-нибудь отличается void от undefine? В каких случаях кого использовать?
Q.
Я в своей конфигурации использую еще несколько внешних компонент (rainbow, vtools). И боюсь, что возникнет конфликт
между именами объектов этих ВК и 1С++. Как быть?
Q.
Что-то у меня не получается создать метод со значением по умолчанию.
class TestClass = Test.ert { Число TestMethod( Число Параметр_Ноль = 0 ); }; 2. Если метод - процедура (не возвращает никаких значений), то нужно указывать тип значения 'void' (обязательно с маленькой буквы). class TestClass = Test.ert { void TestMethod( Число Параметр_Ноль = 0 ); }; 3. Не забывайте ставить точки с запятыми после строк описаний методов. class TestClass = Test.ert { void TestMethod( Число Параметр_Ноль = 0 ); };
Q.
Есть класс, который является наследником от класса 1С "ТаблицаЗначений" (Назовем его "Общие.ТаблицаЗначений"). ТЗ = СоздатьОбъект("Общие.ТаблицаЗначений"); Запрос.Выгрузить(ТЗ); Сообщить(ТипЗначенияСтр(ТЗ)); //"ТаблицаЗначений", вместо ожидаемого "Общие.ТаблицаЗначений" ТЗ = СоздатьОбъект("Общие.ТаблицаЗначений"); ТЗ2 = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(ТЗ2); Сообщить(ТЗ2.КоличествоСтрок()); //их больше нуля ТЗ2.Выгрузить(ТЗ); Сообщить(ТЗ.КоличествоСтрок()); // ноль A. Метод Выгрузить() у запроса (и аналогичный у таблицы значений), предполагает, что тип передаваемого в него параметра - ТаблицаЗначений. Тот факт, что наш класс является наследником ТЗ - ничего не значит. Это класс другого типа. Нужно писать вот так: ТЗ = СоздатьОбъект("Общие.ТаблицаЗначений"); Запрос.Выгрузить(ТЗ.ПолучитьБазовыйКласс()); Сообщить(ТипЗначенияСтр(ТЗ)); // "Общие.ТаблицаЗначений"Примечание Если "Общие.ТаблицаЗначений" наследует от нескольких классов, то лучше указать, какой именно базовый класс мы хотим получить: ТЗ = СоздатьОбъект("Общие.ТаблицаЗначений"); Запрос.Выгрузить(ТЗ.ПолучитьБазовыйКласс("ТаблицаЗначений")); Сообщить(ТипЗначенияСтр(ТЗ));
Q.
Почему когда я меняю реализацию класса в *.ert изменения не применяются до перезапуска 1С?
Q.
Это для модулей, а как насчет описания классов?
Q.
Объясните, плиз, на пальцах, как реализовать наследование.
Есть справочник или документ определенного вида, необходимо расширить функционал, как унаследовать свойства и методы?
класс Документ_Счет = Документ_Счет.ert : Документ.Счет {};В Документ_Счет.ert реализуешь нужные тебе дополнительные методы, при этом для ссылки на объект документа используешь конструкцию Сам(Контекст). Например. Функция Сам(Конт) Возврат Конт; КонецФункции Функция Оплачен() Экспорт Д=СоздатьОбъект("Документ"); Д.ВыбратьПодчиненныеДокументы(,,Сам(Контекст).ТекущийДокумент()); Пока Д.ПолучитьДокумент()=1 Цикл Если Д.Вид()="Выписка" Тогда Возврат 1; КонецЕсли; КонецЦикла; Возврат 0; КонецФункцииИ в коде клиента тогда можно написать: Счет=СоздатьОбъект("Документ_Счет"); Счет.ВыбратьДокументы(); //Используешь унаследованный метод Пока Счет.ПолучитьДокумент()=1 Цикл Если Счет.Оплачен()=0 Тогда //Используешь свой метод Сообщить("Счет "+Счет.ТекущийДокумент()+" не оплачен."); КонецЕсли; КонецЦикла; Q. А если у меня класс Наследование = classes\nasled.cls:Справочник.Номенклатура, Документ.Заявка {};Каким макаром наследуются одинаковые свойства и медоды? Например, Вид()? A. Если не переопределить Вид() в своем классе, то вызываться будет Вид() для Справочник.Номенклатура, потому как он первый в списке. Можешь переопределить Вид() в своем классе, и возвращай что хочешь, например "Заявка_Номенклатура".
Q.
Как сделать, чтобы при приведении объекта в строку (СокрЛП(), Строка(),
СокрЛ()) - возвращалось удобочитаемое строковое представление объекта?
Перем Начало Экспорт; Перем Окончание Экспорт; Функция Этот(Конт) Возврат Конт; КонецФункции Функция Выбрать(Подсказка) Экспорт Если ВвестиПериод(Начало, Окончание,Подсказка)<>1 Тогда Возврат 0; Иначе Возврат 1; КонецЕсли; КонецФункции Функция _ПолучитьКод() Попытка глУстПропись(Гривня,"у"); Исключение КонецПопытки; Возврат ПериодСтр(Начало, Окончание); КонецФункции Процедура Конструктор() Начало = ПолучитьПустоеЗначение("Дата"); Окончание = Начало; КонецПроцедуры Процедура ПриОткрытии() Форма.Параметр._ПриОткрытии(); КонецПроцедурыПо адресу http://itland.ru/forum/index.php?showtopic=2074 можно почитать подробное обсуждение этого вопроса. Дальше Назад Содержание | |||||||||||||||||
© 1998-2004 Fedor Ezeev. |