Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
1 / 1 / 0
Регистрация: 13.01.2012
Сообщений: 70
1
1C 8.x

Советы начинающему 1с программисту

10.04.2012, 21:12. Показов 5483. Ответов 30
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток. Это снова я со своим дипломом (см тему назначение 1с сервера). Очень надо написать процедуру которая выполняется сразу при запуске. Хотелось бы знать где следует описать и вызвать. Заранее спасибо

Добавлено через 16 минут
То есть нужен аналог процедуры в delphi - FormName.FormCreate(...); (Если я непонятно изложил вопрос вначале ))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2012, 21:12
Ответы с готовыми решениями:

Помогите, пожайлуста начинающему программисту
Мне необходимо в Бухгалтерии 7.7 создать отчет в котором для каждого договора будет выводится...

Помогите, Пожалуйста, Начинающему Программисту В 1с 8.2
Добрый день всем. Решил начать программировать в 1С, для этого потренироваться в выполнении...

Стоит ли прочитать начинающему программисту "Архитектура микропроцессора 80286" Морс,Алберт?
Не будет ли он слишком сложноват для начинающего?Или посоветуете что нибудь другое про процессоры?...

Советы начинающему программисту
Всем доброго время суток! Спрошу кратко: начал заниматься программированием в академии (на данный...

30
145 / 145 / 3
Регистрация: 25.03.2011
Сообщений: 512
10.04.2012, 21:29 2
Модуль приложения. Предопределенная процедура есть, приначалеработы системы.
0
1 / 1 / 0
Регистрация: 13.01.2012
Сообщений: 70
10.04.2012, 21:53  [ТС] 3
Это радует очень. А как его открыть? А общие модули не годятся?
0
145 / 145 / 3
Регистрация: 25.03.2011
Сообщений: 512
10.04.2012, 21:54 4
Цитата Сообщение от Reivenor Посмотреть сообщение
Это радует очень. А как его открыть? А общие модули не годятся?
Дерево конфигурации, на верхней строчке правой кнопкой мыши, там еще где модуль сеанса. Через общие можно с подпиской на событие. Ну или вызвать опять эе из модуля прилоэения)
1
1 / 1 / 0
Регистрация: 13.01.2012
Сообщений: 70
10.04.2012, 22:29  [ТС] 5
Угу . . . Нашел. Спс. Ухожу в работу . . .

Добавлено через 30 минут
Не могу уже. Как проверить код? Кидал в модуль управляемого приложения, ошибок нет, но и сообщений о состоянии соединения тоже нет. А предопределенной процедуры приначалеработы системы вовсе не нашел. (Стоит версия 8.2.14)
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Процедура Подключить()
    //Сервер="localhost";
    //ПользовательСервера="root";
    //ПарольСервера="";
   // БазаСервера="lora_bd";
 
    Соединение = Новый COMОбъект("ADODB.Connection");                                                                                                     
    Соединение_param = "driver={MySQL ODBC 5.1 Driver}; server=localhost; uid=root; pwd=; database=lora_bd; port=3306; STMT=SET CHARACTER SET cp1251;";
    Try
    Соединение.open(Соединение_param);
    Сообщить("подключить");
    Except
    Сообщить("Отсутствует связь с базой!");
    return;
    EndTry;
КонецПроцедуры
0
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
10.04.2012, 22:35 6
1. Вы конфигурацию в Управляемом режиме запускаете или в обычном?
2. Вы процедуру Подключить() откуда вызываете?
1
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
10.04.2012, 22:42 7
ПриНачале..() - это системный ивент. Если у тебя в модуле его нет, заведи. Вот кусок этого модуля из торговли.
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Процедура ПриНачалеРаботыСистемы()
    // СтандартныеПодсистемы
    ОбщегоНазначенияКлиент.УстановитьПроизвольныйЗаголовокПриложения();
 
    // ОбновлениеВерсииИБ
    ОбновлениеИнформационнойБазыКлиент.ВыполнитьОбновлениеИнформационнойБазы();
    // Конец ОбновлениеВерсииИБ
 
    // отработка параметров запуска системы
    Если ОбработатьПараметрыЗапуска(ПараметрЗапуска) Тогда
        Возврат;
    КонецЕсли;
    
    // ЗавершениеРаботыПользователей
    СоединенияИБКлиент.УстановитьКонтрольРежимаЗавершенияРаботыПользователей();
    // Конец ЗавершениеРаботыПользователей
    
    // ОбновлениеКонфигурации
    ОбновлениеКонфигурацииКлиент.ПроверитьОбновлениеКонфигурации();
    // Конец ОбновлениеКонфигурации
    
    // РегламентныеЗадания
    // Прим.: подсистема КонтрольДинамическогоОбновленияКонфигурации
    //        должна настраиваться после подсистемы РегламентныеЗадания, т.к. в режиме запуска отдельного
    //        сеанса обработки регламентных заданий, управление не будет и не должно быть передано далее.
    РегламентныеЗаданияКлиент.ПриНачалеРаботыСистемы();
    // Конец РегламентныеЗадания
    
    // КонтрольДинамическогоОбновленияКонфигурации
    КонтрольДинамическогоОбновленияКонфигурацииКлиент.ПриНачалеРаботыСистемы();
    // Конец КонтрольДинамическогоОбновленияКонфигурации
    
    // Конец СтандартныеПодсистемы
    
    //РаботаСВнешнимОборудованием
    МенеджерОборудованияКлиент.ПриНачалеРаботыСистемы();
    //Конец РаботаСВнешнимОборудованием
    
    //РаботаСМобильнымиПриложениями
    МобильныеПриложенияКлиент.ПриНачалеРаботыСистемы();
    //Конец РаботаСМобильнымиПриложениями
    
КонецПроцедуры
Ну и до мускула докапываться с клиента, наверное. Fenomen тут лучше знает.
1
1 / 1 / 0
Регистрация: 13.01.2012
Сообщений: 70
10.04.2012, 22:59  [ТС] 8
Спасибо ребята, доперло до меня как до жирафа. Я же после delphi искал событие приначалеработы системы, чтобы по щелчку получить сразу шаблон процедуры. В модуле управляемого приложения своими пальчиками дописал три строчки и заработало
Вот код
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Процедура Подключить()
    Соединение = Новый COMОбъект("ADODB.Connection");                                                                                                     
    Соединение_param = "driver={MySQL ODBC 5.1 Driver}; server=localhost; uid=root; pwd=; database=lora_bd; port=3306; STMT=SET CHARACTER SET cp1251;";
    Try
    Соединение.open(Соединение_param);
    Сообщить("Связь установлена!");
    Except
    Сообщить("Отсутствует связь с базой!");
    return;
    EndTry;
КонецПроцедуры
 
Процедура ПриНачалеРаботыСистемы()
 
    Подключить();
 
КонецПроцедуры
Добавлено через 2 минуты
Цитата Сообщение от Fenomen Посмотреть сообщение
1. Вы конфигурацию в Управляемом режиме запускаете или в обычном?
2. Вы процедуру Подключить() откуда вызываете?
1. В управляемом. В нем мне и нужно, если я правильно понял то что написано в справке

Добавлено через 11 минут
Цитата Сообщение от duk337 Посмотреть сообщение
Ну и до мускула докапываться с клиента, наверное. Fenomen тут лучше знает.
докапываться с клиента Что вы имеете ввиду?
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
10.04.2012, 23:05 9
Ты стучишься в скуль. Гипотетически, это можно делать и с сервера. Но адо, наверное, надо юзать на клиенте. Я подумал, что это в т.ч. тема твоей диссертации, а я детали тут знаю не шибко.
0
1 / 1 / 0
Регистрация: 13.01.2012
Сообщений: 70
11.04.2012, 02:20  [ТС] 10
В скуль достучались вроде, запросы теперь пытаюсь сделать. Отпишусь как получится ))

Добавлено через 2 часа 35 минут
Научился худо бедно делать запросы разных типов (на добавление, удаление, чтение) и обращаться к полям полученного результата. OMG!!!!! Столько искал в нете, хоть кто нибудь написал бы, что после Fields(<номер поля>) нужно еще и value приткнуть!!! Слава методу тыка и интуиции!
Единственная проблема, которую я так и не решил - это чудной результат recordcount-а. Пару сотен записей имеется, а он мне -1 в ответ. Че за фигня! adUseClient тоже не исправил это.

1C
1
2
3
4
5
records = Новый COMобъект("ADODB.RecordSet");
    records.ActiveConnection = соединение;
    records.open("Select * from `lora_bd`.`test`;");
    records.CursorLocation = "adUseClient";
        сообщить(records.RecordCount());
Добавлено через 21 минуту
1C
1
records.CursorLocation = 3;
Без коментариев . . .
0
1 / 1 / 0
Регистрация: 13.01.2012
Сообщений: 70
12.04.2012, 12:16  [ТС] 11
Не могу понять. Что бы обращаться, например, к объекту справочники, мне сервер нужен??? Например такая процедура
1C
1
2
3
4
&НаСервере
Процедура ПослеЗаписи(ПараметрыЗаписи)
    Справка = Справочники.Каталоги;
КонецПроцедуры
выполняется, а такая
1C
1
2
3
4
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
    Справка = Справочники.Каталоги;
КонецПроцедуры
Ругается
0
150 / 150 / 3
Регистрация: 05.05.2010
Сообщений: 570
12.04.2012, 12:23 12
В этом и смысл тонкого клиента - на клиент передается минимум информации...
0
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
12.04.2012, 12:28 13
Цитата Сообщение от Reivenor Посмотреть сообщение
Что бы обращаться, например, к объекту справочники, мне сервер нужен???
Да, данную процедуру нужно выполнять на сервере. Но нужно понимать, что имеется ввиду не "физический" сервер.
Почитайте: http://www.v8.1c.ru/overview/Term_000000033.htm#1
А также неплохо прочитать Главу 5 книги Архитектура и работа с данными "1С:Предприятия 8.2"
1
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
12.04.2012, 12:28 14
Цитата Сообщение от Reivenor Посмотреть сообщение
Что бы обращаться, например, к объекту справочники, мне сервер нужен???
У Вас есть альтернатива работать с толстым клиентом, тогда "сервер не нужен". Ежели же Вы хотите использовать преимущества клинт-сервера - ну так и используйте.
И даже логически - не читая книжек - понятно, что объект типа "Менеджер" (а именно таким является "Справочники") должен жить на сервере
0
1 / 1 / 0
Регистрация: 13.01.2012
Сообщений: 70
12.04.2012, 12:36  [ТС] 15
Цитата Сообщение от Fenomen Посмотреть сообщение
Да, данную процедуру нужно выполнять на сервере. Но нужно понимать, что имеется ввиду не "физический" сервер.
Почитайте: http://www.v8.1c.ru/overview/Term_000000033.htm#1
А также неплохо прочитать Главу 5 книги Архитектура и работа с данными "1С:Предприятия 8.2"
Вот оно как. Я уже в недоумении был. Люди вроде без серверов на 1с работают, а тут . . . Спс за ссылки.

Добавлено через 1 минуту
Цитата Сообщение от duk337 Посмотреть сообщение
У Вас есть альтернатива работать с толстым клиентом, тогда "сервер не нужен". Ежели же Вы хотите использовать преимущества клинт-сервера - ну так и используйте.
И даже логически - не читая книжек - понятно, что объект типа "Менеджер" (а именно таким является "Справочники") должен жить на сервере
Это в настройках надо покопаться, что бы запускаться в режиме толстого клиента?
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
12.04.2012, 12:44 16
У меня вот тоже дилетантский вопрос, вызванный ленью: можно ли где подглядеть список "стыковых" объектов и методов, которые доступны и на сервере и на клиенте (полностью или частично). Чтоб не лазить по синтакс-помощнику? Ситуация типа форму создать на сервере, а открыть на клиенте. Т.е. где оптимизация использования ресурсов возложена на программиста. И особенно рекомендации разработчиков.
PS. Каюсь, но подробными исследованиями диска ИТС не могу себя заставить заняться

Добавлено через 5 минут
Цитата Сообщение от Reivenor Посмотреть сообщение
Это в настройках надо покопаться, что бы запускаться в режиме толстого клиента?
Настройки запуска базы. Учтите только, что не адаптированный под тонкого текст не будет в нём работать.
1
1 / 1 / 0
Регистрация: 13.01.2012
Сообщений: 70
12.04.2012, 12:46  [ТС] 17
Цитата Сообщение от duk337 Посмотреть сообщение
У меня вот тоже дилетантский вопрос, вызванный ленью: можно ли где подглядеть список "стыковых" объектов и методов, которые доступны и на сервере и на клиенте (полностью или частично). Чтоб не лазить по синтакс-помощнику? Ситуация типа форму создать на сервере, а открыть на клиенте. Т.е. где оптимизация использования ресурсов возложена на программиста. И особенно рекомендации разработчиков.
PS. Каюсь, но подробными исследованиями диска ИТС не могу себя заставить заняться
Ага. После "." кстати выпадают не все возможные варианты. причем выпадающий список не зависит от типа процедуры(НаКлиенте или НаСервере). Очень неудобно
0
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
12.04.2012, 13:00 18
Цитата Сообщение от duk337 Посмотреть сообщение
У Вас есть альтернатива работать с толстым клиентом, тогда "сервер не нужен".
А еще есть возможность работать с тонким клиентом, даже в файлом варианте.

Добавлено через 58 секунд
Цитата Сообщение от duk337 Посмотреть сообщение
У меня вот тоже дилетантский вопрос, вызванный ленью: можно ли где подглядеть список "стыковых" объектов и методов, которые доступны и на сервере и на клиенте (полностью или частично). Чтоб не лазить по синтакс-помощнику?
Я тоже к сожалению не в курсе...

Добавлено через 1 минуту
Цитата Сообщение от duk337 Посмотреть сообщение
Т.е. где оптимизация использования ресурсов возложена на программиста. И особенно рекомендации разработчиков.
А рекомендация всего одна - минимальное количество вызовов сервера.
Именно по этому, например не рекомендуется менять видимость элементов управления формы, т.к. это вызывает сервер.
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
12.04.2012, 13:18 19
Цитата Сообщение от Fenomen Посмотреть сообщение
А еще есть возможность работать с тонким клиентом, даже в файлом варианте.
О! Спасибо. В голову не приходило. Это встроенный эмулятор? Моожет тупо толстый запускается без альтернатив
Цитата Сообщение от Fenomen Посмотреть сообщение
...не рекомендуется менять видимость элементов управления формы, т.к. это вызывает сервер.
Спасибо и на этом!
0
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
12.04.2012, 13:37 20
Цитата Сообщение от duk337 Посмотреть сообщение
Это встроенный эмулятор?
Да, на локальной машине запускается экземпляр сервера.
2
12.04.2012, 13:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2012, 13:37
Помогаю со студенческими работами здесь

любые советы начинающему Java-программисту.
Добрый вечер дорогие покорители Java-Эвереста,пишу, чтобы посоветоваться с Вами. Я изучаю Java с...

Какие Вы можете дать советы начинающему web программисту?
Здравствуйте начинающие и опытные Web программисты! Хочу поинтересоваться вашими успехами и...

Начинающему программисту
Посоветуйте пожалуйста с чего лучше начать учится программировать, какой компьютерный язык выучить...

Начинающему программисту
Привет уважаемые форумчане. У меня такой вопрос: хочу изучать программирование на языке С++...

Объясните начинающему программисту
Программисты помогите мне начать изучение языке Delphi.Я хочу начать изучать язык программирования...

Начинающему программисту на JAVA
Всем привет, проблема в том что я ни как не могу одну задачу отправить. Я не давно начал писать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru