Переключение на Главную Страницу Страницы: 1 ... 11 12 [13] 14 15 ... 27 ОтправитьПечать
Очень популярная тема (более 25 ответов) Снегопат: Закрытые библиотеки 1С v8 (число прочтений - 151389 )
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Закрытые библиотеки 1С v8
Ответ #180 - 14. Апреля 2011 :: 11:07
Печать  
Begemot писал(а) 14. Апреля 2011 :: 10:23:
orefkov писал(а) 14. Апреля 2011 :: 09:53:
А вообще по стандарту можно ли для переменной модуля указывать директиву компиляции?
Оказывает ли это какое-то действие?
В справке написано - только для процедур и функций.


Да возможно...
Переменные тоже могут быть серверные и клиентские...

Ок, буду переписывать парсер. Опять.
Кстати, вопрос.
Вот например:
Код
Выбрать все
Перем п1, п2 Экспорт;
 


Экспорт относиться только к п2.
А вот
Код
Выбрать все
&НаКлиенте
Перем п1, п2;
 


&НаКлиенте будет относиться к которой из переменных?
Ктонить может взять и проверить, а то я пока не могу.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Закрытые библиотеки 1С v8
Ответ #181 - 14. Апреля 2011 :: 11:11
Печать  
К обеим переменным. У меня сейчас так работает в нескольких модулях.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Закрытые библиотеки 1С v8
Ответ #182 - 14. Апреля 2011 :: 11:18
Печать  
СТОЙ!
Тут что-то непонятное.
Похоже что эти директивы ни на что не влияют. Переменная видится как на сервере, так и на клиенте независимо от директивы компиляции. Только что попробовал в различных функциях модуля формы обработки. Может в других модулях по-другому? Сомневаюсь что-то...

Извиняюсь за беспокойство.
  
Наверх
 
IP записан
 
Begemot
Junior Member
**
Отсутствует



Сообщений: 21
Местоположение: Тула
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Закрытые библиотеки 1С v8
Ответ #183 - 14. Апреля 2011 :: 11:28
Печать  
JohnyDeath писал(а) 14. Апреля 2011 :: 11:18:
СТОЙ!
Тут что-то непонятное.
Похоже что эти директивы ни на что не влияют. Переменная видится как на сервере, так и на клиенте независимо от директивы компиляции. Только что попробовал в различных функциях модуля формы обработки. Может в других модулях по-другому? Сомневаюсь что-то...

Извиняюсь за беспокойство.


Модуль формы управляемого приложения:
Код
Выбрать все
&НаКлиенте
Перем ПеремНаКлиенте1, ПеремНаКлиенте2;

&НаСервере
Перем ПеремНаСервере1, ПеремНаСервере2;


&НаКлиенте
Процедура Команда1(Команда)
	ПеремНаКлиенте1 = 11; ПеремНаКлиенте2 = 12;
	ПеремНаСервере1 = 21; ПеремНаСервере2 = 22;

	ТестНаКлиенте();
	ТестНаСервере();
КонецПроцедуры


&НаКлиенте
Процедура ТестНаКлиенте()
	Сообщить(ПеремНаКлиенте1);
	Сообщить(ПеремНаКлиенте2);
	Сообщить(ПеремНаСервере1);
	Сообщить(ПеремНаСервере2);
КонецПроцедуры // Тест()


&НаСервере
Процедура ТестНаСервере()
	Сообщить(ПеремНаКлиенте1);
	Сообщить(ПеремНаКлиенте2);
	Сообщить(ПеремНаСервере1);
	Сообщить(ПеремНаСервере2);
КонецПроцедуры
 



Выдает ошибки:

{Форма.Форма.Форма(29,11)}: Переменная не определена (ПеремНаКлиенте1)
     Сообщить(<<?>>ПеремНаКлиенте1); (Проверка: Сервер)
{Форма.Форма.Форма(30,11)}: Переменная не определена (ПеремНаКлиенте2)
     Сообщить(<<?>>ПеремНаКлиенте2); (Проверка: Сервер)
{Форма.Форма.Форма(22,11)}: Переменная не определена (ПеремНаСервере1)
     Сообщить(<<?>>ПеремНаСервере1); (Проверка: Тонкий клиент)
{Форма.Форма.Форма(23,11)}: Переменная не определена (ПеремНаСервере2)
     Сообщить(<<?>>ПеремНаСервере2); (Проверка: Тонкий клиент)


Т.е. клиентские переменные видятся в только клиентских модулях, а серверные переменные видятся только в серверных...
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Закрытые библиотеки 1С v8
Ответ #184 - 14. Апреля 2011 :: 11:45
Печать  
А теперь немного правим твои процедуры:
Код
Выбрать все
&НаКлиенте
Процедура ТестНаКлиенте()
	ПеремНаСервере1 = 0;
	ПеремНаСервере2 = 0;
	Сообщить(ПеремНаКлиенте1);
	Сообщить(ПеремНаКлиенте2);
	Сообщить(ПеремНаСервере1);
	Сообщить(ПеремНаСервере2);
КонецПроцедуры // Тест()


&НаСервере
Процедура ТестНаСервере()
	ПеремНаКлиенте1 = 0;
	ПеремНаКлиенте2 = 0;
	Сообщить(ПеремНаКлиенте1);
	Сообщить(ПеремНаКлиенте2);
	Сообщить(ПеремНаСервере1);
	Сообщить(ПеремНаСервере2);
КонецПроцедуры 


и ошибок не видим


В очередной раз извиняюсь. Это я туплю.
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Закрытые библиотеки 1С v8
Ответ #185 - 14. Апреля 2011 :: 11:49
Печать  
Begemot писал(а) 14. Апреля 2011 :: 11:28:
JohnyDeath писал(а) 14. Апреля 2011 :: 11:18:
СТОЙ!
Тут что-то непонятное.
Похоже что эти директивы ни на что не влияют. Переменная видится как на сервере, так и на клиенте независимо от директивы компиляции. Только что попробовал в различных функциях модуля формы обработки. Может в других модулях по-другому? Сомневаюсь что-то...

Извиняюсь за беспокойство.


Модуль формы управляемого приложения:
[code]
&НаКлиенте
Перем ПеремНаКлиенте1, ПеремНаКлиенте2;

&НаСервере
Перем ПеремНаСервере1, ПеремНаСервере2;


...


полуОФФ

Ох не советую я вам использовать Перем применительно к управляемым формам
ключевое слово Перем оставлено, как бы сказать для обратной совместимости что-ли

дело в том что значения Переменных НЕ хранятся между клиентскими вызовами сервера, и каждый раз переинициализируются.
http://forum.infostart.ru/forum14/topic27420/message403334/#message403334

однако директивы компиляции на них действуют, поэтому парситься должны Подмигивание
кстати если директива не указана, тогда переменная/процедура/функция считается серверной (вдруг кто не помнит)

  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Закрытые библиотеки 1С v8
Ответ #186 - 14. Апреля 2011 :: 12:01
Печать  
Сорри, за очевидные вещи.
orefkov писал(а) 14. Апреля 2011 :: 11:07:
Кстати, вопрос.
Вот например:
Код
Выбрать все
Перем п1, п2 Экспорт; 


Экспорт относиться только к п2.

Естественно.
Если экспортиться должны обе, то:
Код
Выбрать все
Перем п1 Экспорт, п2 Экспорт; 


Так и в семерке.

А так:
Код
Выбрать все
Перем п1 Экспорт, п2; 


экспортится только п1.
  
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Закрытые библиотеки 1С v8
Ответ #187 - 14. Апреля 2011 :: 12:03
Печать  
lustin писал(а) 14. Апреля 2011 :: 11:49:
дело в том что значения Переменных НЕ хранятся между клиентскими вызовами сервера, и каждый раз переинициализируются.
http://forum.infostart.ru/forum14/topic27420/message403334/#message403334

Круто... не знал. Я правда до этого только "клиентскими" переменными пользовался
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Закрытые библиотеки 1С v8
Ответ #188 - 14. Апреля 2011 :: 12:05
Печать  
simply писал(а) 14. Апреля 2011 :: 12:01:
Сорри, за очевидные вещи.
...

Так вопрос и не за экспортные переменные был.
  
Наверх
 
IP записан
 
Begemot
Junior Member
**
Отсутствует



Сообщений: 21
Местоположение: Тула
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Закрытые библиотеки 1С v8
Ответ #189 - 14. Апреля 2011 :: 12:06
Печать  
JohnyDeath писал(а) 14. Апреля 2011 :: 11:45:
[s]А теперь немного правим твои процедуры:
...
и ошибок не видим

В очередной раз извиняюсь. Это я туплю.

Код
Выбрать все
&НаКлиенте
Перем ПеремНаКлиенте1, ПеремНаКлиенте2;

&НаСервере
Перем ПеремНаСервере1, ПеремНаСервере2;


&НаКлиенте
Процедура Команда1(Команда)
	ПеремНаКлиенте1 = 11; ПеремНаКлиенте2 = 12;
	ПеремНаСервере1 = 21; ПеремНаСервере2 = 22;

	ТестНаКлиенте();

	ТестНаСервере();

	ТестНаКлиенте();
КонецПроцедуры


&НаКлиенте
Процедура ТестНаКлиенте()
	Сообщить(ПеремНаКлиенте1);
	Сообщить(ПеремНаКлиенте2);
	//Сообщить(ПеремНаСервере1);
	//Сообщить(ПеремНаСервере2);
КонецПроцедуры // Тест()


&НаСервере
Процедура ТестНаСервере()
	ПеремНаКлиенте1 = 0; // Это локальная переменная процедуры
	ПеремНаКлиенте2 = 0; // Это локальная переменная процедуры
	Сообщить(ПеремНаКлиенте1);
	Сообщить(ПеремНаКлиенте2);
	Сообщить(ПеремНаСервере1);
	Сообщить(ПеремНаСервере2);
КонецПроцедуры
 



Этот код выполнится без ошибок, но при втором вызове клиентской процедуры ТестНаКлиенте() Выведится "11" и "12". То, что было присвоено клиентским переменным в клиентской процедуре "Команда1"
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Закрытые библиотеки 1С v8
Ответ #190 - 14. Апреля 2011 :: 12:13
Печать  
Потому-то я и зачеркнул и извинялся за тугодумие.
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Закрытые библиотеки 1С v8
Ответ #191 - 14. Апреля 2011 :: 12:17
Печать  
JohnyDeath писал(а) 14. Апреля 2011 :: 12:05:
simply писал(а) 14. Апреля 2011 :: 12:01:
Сорри, за очевидные вещи.
...

Так вопрос и не за экспортные переменные был.

Хм, мне показалось, что и это был вопрос ...
Цитата:
orefkov писал(а) 14. Апреля 2011 :: 11:07:
Кстати, вопрос.
Вот например:
Код
Выбрать все
Перем п1, п2 Экспорт;
 


Экспорт относиться только к п2.



Но с экспортными переменными у меня не получилось (см. скриншот)
P.S.: сделал без снегопата.
  

export_v8_1.JPG ( 22 KB | Загрузки )
export_v8_1.JPG
Наверх
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Закрытые библиотеки 1С v8
Ответ #192 - 14. Апреля 2011 :: 12:32
Печать  
simply писал(а) 14. Апреля 2011 :: 12:17:
Но с экспортными переменными у меня не получилось (см. скриншот)
P.S.: сделал без снегопата.

Сорри, это я туплю.

Доделал (см. скриншот).
И получил:
Цитата:
{Документ.Документ1.Форма.ФормаДокумента.Форма(19)}: Поле объекта не обнаружено (а1)
     Возврат об.а1;
  

export_v8_2.JPG ( 37 KB | Загрузки )
export_v8_2.JPG
Наверх
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Закрытые библиотеки 1С v8
Ответ #193 - 14. Апреля 2011 :: 12:47
Печать  
Извиняюсь за ОФФ.
Суммируя недавно сказанное - в который раз "восхищаюсь" создателями 1С.

P.S.: вчера весь вечер программил в снегопате - в восторге! Как будто в родную (модернизированную) семерку вернулся Улыбка
С нетерпением жду платную.
  
Наверх
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Закрытые библиотеки 1С v8
Ответ #194 - 14. Апреля 2011 :: 12:52
Печать  
Вот еще немного раздразню (скоро выложу наверное)
Извиняюсь за косяк, радикал фотки пережал Печаль

Произвольные группировки с помощью { } в комментах:

Расцветка текстов запросов

Учитывает вложенные в текст запросов выражения

А теперь все сразу


  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 11 12 [13] 14 15 ... 27
ОтправитьПечать