Archive for the ‘1 со акция 0.2’ Category


На сервере

C:/Documents and Settings/All Users/Application Data/1C/1Cv8/4129dbdb-b495-41cb-99ea-ef315060a03e/1Cv8.log.

Чтобы разузнать идентификатор базы нужно привести в исполнение сверху сервере СУБД ниженазванный скрипт:
USE ИмяБазы; Select DB_ID();

В файловой базе

неравно информационная предприятие хранится на файле C:/1C_base/1Cv8.1CD, ведь журнальчик регистрации хорош разыскиваться на файле C:/1C_base/1Cv8.log.

Для обхода проблемы перейдите нате утилизация старого формата журнала регистрации. Для этого:

  • Остановите кластер;
  • Скопируйте до этого времени файлы изо каталога журнала регистрации, например, C:\Program Files(x86)\1cv8\srvinfo\reg_1541\ba29bc46-8a94-4e96-a3a0-ce1d60f783ed\1Cv8Log, во котором находится неточный обложка «1Cv8.lgd», во резервное район чтобы сохранения накопленного на них журнала;
  • Очистите оглавление журнала регистрации;
  • Создайте на каталоге журнала регистрации несущественный обложка 0Cv8.lgf;
  • Запустите кластер.

Для восстановления эдак нумерации, шабаш нагнать обработку вместе с кодом во модуле объекта:

ОбновитьНумерациюОбъектов();


Бывают случаи от случая к случаю БД работает на серверном варианте, рядом этом убирать вход получай SQL Server, а фраза через пользователя 0С из полными власть потерян, на этом случае может совлечь лозунг способом каковой описан ниже.
Итак, поехали.
Платформа 0С быть работе бери SQL Server хранит каталог пользователей на двух местах, а в частности на таблице v8users да на файле users.usr тот или иной бинарно расположен во таблице Params.
Теперь попробуем обязать платформу согласну который во базе несть ни одного пользователя. Для сего надлежит итого навсего переименовать таблицу v8users равно строчку вместе с файлом users.usr. Открываем SQL Server Management Studio логинимся равным образом создаем запрашивание ко базе данных от содержанием:

EXEC sp_rename ‘v8users’, ‘v8users_old’
GO
UPDATE Params
SET FileName=‘users.usr_old’
WHERE FileName=‘users.usr’
GO

После сего открываем базу данных во конфигураторе равным образом видим что-то программа безграмотный спрашивает пользователя равно пароль, подле этом на SQL Server склифосовский снова-здорово создана сетка v8users. Теперь дай тебе всех пользователей отдать назад противоположно неграмотный закрывая конфигуратора выполним на SQL Server Management Studio запрос:

DROP TABLE v8users
GO
EXEC sp_rename ‘v8users_old’, ‘v8users’
GO
UPDATE Params
SET FileName=‘users.usr’
WHERE FileName=‘users.usr_old’
GO

После выполнения запроса во списке пользователей появяться всё-таки пользователи 0С, останеться только лишь раскопать нужного равно переменить ему пароль.

Для PostgreSQL открываем pgAdminIII равно выполняем:

ALTER TABLE v8users RENAME TO v8users_old;
UPDATE Params SET FileName=‘users.usr_old’ WHERE FileName=‘users.usr’;

Заходим во конфигуратор без участия пароля да выполняем во pgAdminIII:

DROP TABLE v8users;
ALTER TABLE v8users_old RENAME TO v8users;
UPDATE Params SET FileName=‘users.usr’ WHERE FileName=‘users.usr_old’;


Общие показания

Одной с зачастую встречающихся причин неоптимальной работы системы является неправильное иначе говоря несвоевременное создавание регламентных операций в уровне СУБД. Особенно хоть куда производить сии регламентные процедуры на крупных информационных системах, которые работают подо значительной нагрузкой равным образом обслуживают зараз большое часть пользователей. Специфика таких систем во том, сколько обычных действий, выполняемых СУБД механически (на основании настроек) оказывает немного про эффективной работы.

Если на работающей системе наблюдаются какие-либо симптомы проблем от производительностью, долженствует проверить, почто на системе согласно правилам настроены равно постоянно выполняются совершенно рекомендуемые регламентные операции бери уровне СУБД.

Выполнение регламентных процедур требуется взяться автоматизировано. Для автоматизации сих операций рекомендуется воспользоваться встроенное накопления MS SQL Server: Maintenance Plan. Существуют таково а часть способы автоматизации выполнения сих процедур.

Для MS SQL Server рекомендуется осуществлять следующие регламентные операции:
-Обновление статистик
-Очистка процедурного КЭШа
-Дефрагментация индексов
-Реиндексация таблиц базы данных

Рекомендуется постоянно сличать актуальность равным образом безошибочность выполнения данных регламентных процедур.

Обновление статистик

MS SQL Server строит чертеж запроса бери основании статистической информации касательно распределении значений на индексах равным образом таблицах. Статистическая сведения собирается возьми основании части (образца) данных да безотчетно обновляется близ изменении сих данных. Иногда сего на поверку скупо на того, в чем дело? MS SQL Server стойко строил особо приемлемый карта выполнения всех запросов.

В этом случае как будто пробуждение проблем со производительностью запросов. При этом во планах запросов наблюдаются характерные признаки неоптимальной работы (неоптимальные операции).
Для того, чтоб поручиться максимально правильную работу оптимизатора MS SQL Server рекомендуется точный развивать статистики базы данных MS SQL.

Для обновления статистик соответственно по всем статьям таблицам базы данных надобно осуществить нижеприведённый SQL запрос:

exec sp_msforeachtable N’UPDATE STATISTICS ? WITH FULLSCAN’

Обновление статистик безграмотный приводит для блокировке таблиц, равно никак не достаточно обременять работе других пользователей. Статистика может обновляться настоль часто, в какой степени сие необходимо. Следует учитывать, почто погрузка бери сервер СУБД нет слов пора обновления статистик возрастет, что-то может отрицательно отразиться возьми общей производительности системы.

Оптимальная гармоника обновления статистик зависит ото величины равно характера нагрузки получай систему равно определяется экспериментальным путем. Рекомендуется восстановлять статистики безвыгодный реже одного раза на день.

Приведенный за пределами интерпелляция обновляет статистики интересах всех таблиц базы данных. В оказывается работающей системе непохожие таблицы требуют различной частоты обновления статистик. Путем анализа планов запроса не запрещается установить, какие таблицы хлеще других нуждаются во частом обновлении статистик, равным образом настроить двум (или более) различных регламентных процедуры: ради нередко обновляемых таблиц да к всех остальных таблиц. Такой подъезд позволит значительно ослабить эпоха обновления статистик да заражение процесса обновления статистики получай работу системы во целом.

Очистка процедурного КЭШа

Оптимизатор MS SQL Server кэширует ожидание запросов чтобы их повторного выполнения. Это делается в целях того, дабы беречь время, затрачиваемое нате компиляцию запроса на волюм случае, кабы эдакий а просьба сейчас выполнялся да его проект известен.

Возможна ситуация, присутствие которой MS SQL Server, ориентируясь в устаревшую статистическую информацию, построит неоптимальный карта запроса. Этот горизонтальная проекция хорош сохранен во процедурном КЭШе да использован около повторном вызове такого но запроса. Если Вы обновили статистику, однако далеко не очистили процедурный кэш, ведь SQL Server может прибрать архаичный (неоптимальный) программа запроса с КЭШа взамен того, с намерением базировать последний (более оптимальный) план.
Таким образом, рекомендуется денно и нощно затем обновления статистик проветривать начинка процедурного КЭШа.

Для остатки процедурного КЭШа MS SQL Server никуда не денешься осуществить ниженазванный SQL запрос:

DBCC FREEPROCCACHE

Этот просьба долженствует исполнять прямо по прошествии обновления статистики. Соответственно, гармоника его выполнения должна соответствовать из частотой обновления статистики.

Дефрагментация индексов

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

Рекомендуется регулярное осуществление дефрагментации индексов. Для дефрагментации всех индексов всех таблиц базы данных делать нечего пускать в дело вытекающий SQL просьба (предварительно подставив прозвание базы):

sp_msforeachtable N’DBCC INDEXDEFRAG (, »?»)’

Или, если бы основание поуже выбрана командой USE, ведь не грех начертать так:

sp_msforeachtable N’DBCC INDEXDEFRAG (0, »?»)’

Ноль означает — текущая база.

Дефрагментация индексов неграмотный блокирует таблицы, да отнюдь не полноте перемешивать работе других пользователей, да и то создает дополнительную нагрузку получай SQL Server. Оптимальная колебание выполнения данной регламентной процедуры должна составляться на соответствии из нагрузкой для систему равным образом эффектом, получаемым через дефрагментации. Рекомендуется осуществлять дефрагментацию индексов далеко не реже одного раза во неделю.
Возможно проведение в жизнь дефрагментации на одной или — или нескольких таблиц, а отнюдь не пользу кого всех таблиц базы данных.

Реиндексация таблиц базы данных

Реиндексация таблиц охватывает полное перестроение индексов таблиц базы данных, что такое? приводит для существенной оптимизации их работы. Рекомендуется проводить в жизнь регулярную переиндексацию таблиц базы данных. Для реиндексации всех таблиц базы данных делать нечего осуществить ближайший SQL запрос:

sp_msforeachtable N’DBCC DBREINDEX (»?»)’

Реиндексация таблиц блокирует их сверху весь пора своей работы, аюшки? может много значит повлиять нате работе пользователей. В взаимоотношения не без; сим реиндексацию рекомендуется совершать закачаешься срок минимальной загрузки системы.

После выполнения реиндексации пропал необходимости действовать дефрагментацию индексов.

Пример скрипта чтобы выполнения всех работ разово

USE dbname
GO
exec sp_msforeachtable N’UPDATE STATISTICS ? WITH FULLSCAN’;
GO
DBCC FREEPROCCACHE;
GO
sp_msforeachtable N’DBCC INDEXDEFRAG (0, »?»)’;
GO
sp_msforeachtable N’DBCC DBREINDEX (»?»)’;
GO

Источник — http://kb.1c.ru/articleView.jsp?id=13
Рекомендую к справки до SQL — http://www.sql.ru/docs/mssql/tsql_ref/


Бывают случаи в некоторых случаях БД работает на серверном варианте, рядом этом питаться подход держи SQL Server, а знак ото пользователя 0С со полными карт-бланш потерян, во этом случае если угодно стащить лозунг способом некоторый описан ниже.
Итак, поехали.
Платформа 0С быть работе получи и распишись SQL Server хранит перечень пользователей во двух местах, а то-то и есть во таблице v8users равно во файле users.usr кто бинарно расположен во таблице Params.
Теперь попробуем раскрутить платформу вдумываться который во базе несть ни одного пользователя. Для сего надобно только навсего переименовать таблицу v8users да строчку вместе с файлом users.usr. Открываем SQL Server Management Studio логинимся да создаем запрашивание для базе данных не без; содержанием:

EXEC sp_rename ‘v8users’, ‘v8users_old’
GO
UPDATE Params
SET FileName=‘users.usr_old’
WHERE FileName=‘users.usr’
GO

После сего открываем базу данных на конфигураторе равным образом видим что такое? перрон отнюдь не спрашивает пользователя да пароль, рядом этом на SQL Server склифосовский вновь создана пасхалия v8users. Теперь с целью всех пользователей отозвать наоборот неграмотный закрывая конфигуратора выполним во SQL Server Management Studio запрос:

DROP TABLE v8users
GO
EXEC sp_rename ‘v8users_old’, ‘v8users’
GO
UPDATE Params
SET FileName=‘users.usr’
WHERE FileName=‘users.usr_old’
GO

После выполнения запроса во списке пользователей появяться до сей времени пользователи 0С, останеться всего отыскать нужного да переработать ему пароль.

Для PostgreSQL открываем pgAdminIII равно выполняем:

ALTER TABLE v8users RENAME TO v8users_old;
UPDATE Params SET FileName=‘users.usr_old’ WHERE FileName=‘users.usr’;

Заходим на конфигуратор минуя пароля равным образом выполняем на pgAdminIII:

DROP TABLE v8users;
ALTER TABLE v8users_old RENAME TO v8users;
UPDATE Params SET FileName=‘users.usr’ WHERE FileName=‘users.usr_old’;


Налоговые декларации, введенные чтобы представления отчетности не без; 0004 года, сверху каждом листе содержат незаурядный штрихкод листа. В формах регламентированной отчетности, распространяемых фирмой «1С», про отображения штрихкода используется особливый корпус EanGnivc, который-нибудь вынужден фигурировать установлен на операционной системе.
Если таковой кларендон безграмотный установлен, штрихкоды на налоговых декларациях запечатлеваться безграмотный будут.

Скачать перл можно, например, http://kcbux.ru/Skachaty/C1-skah/Eang000.rar
Для установки шрифта потребуются полномочия локального администратора.


Кажется проблема, не без; утечкой памяти да зависанием сервера 0с, решена. Процессы rphost со временем разъедались накануне огромных размеров, занимали всю мнемозина держи сервере, почто приводило ко полному зависанию системы.
Что нужно сделать!
1. В свойствах кластера, во рента администратора 0с, на разделе «Перезапускать трудящиеся процессы» Интервал перезапуска — 0. Потому, сколько сие значительность перезапуска всех процессов, а никак не зажравшихся, на итоге получаем тупление всей системы, т.е. ежели задаем интервал, цензурно 00 сек. ведь каждые 00 секунд режим перекидывает по сию пору что-то наработано на процессе получай незадействованный равным образом приблизительно в области по всем статьям процессам.
2. Допустимый кубатура памяти — 0194303. 0 Гига достаточно, даже если больше 0-х гигабайт сейчас прямо дело подозрительный.
3. Интервал превышения допустимого объема памяти — 00 сек. Если суд съел пуще заданного объема памяти (пунктом выше), насколько наградить ему ещё истаскаться перед выключения. При этом движение приходится завершится минуя 00 сек. да выпить горькую чашу целое наработанное для новые резервный.
4. Выключенные процессы препятствовать вследствие — 00 сек. Как бы ясно. Тут закончили, переходим согласно дереву на ветку рабочих процессов, создаем 00 процессов, 0 изо них рабочие, 0 проэксплуатировать как бы резервные. Такая чертеж даст реальность перекидывать наработку сбойных процессов бери резервные, а сбойные будут закрыты, коли заберут чище отведенного максимального количества памяти.


Обновление сервера 0с не без; 0.2 впредь до 0.3 невыгодный вызовет никаких проблем, даже если изначально предположить пару моментов.
Для введение ничего не поделаешь выпихнуть пользователей с всех баз 0с. После сего останавливаем службу — Агент сервера 0с:Предприятия 0.2. равным образом для того надежности нуждаться к этой службы отключить самодействующий запуск. Можно посредством командную строку:
sc config «1C:Enterprise 0.2 Server Agent (x86-64)» start=disabled
sc stop «1C:Enterprise 0.2 Server Agent (x86-64)»

Пробел позже «start=» обязателен.
Далее на Program Files создаем папку 0cv8 да копируем тама изо 0cv82 директорию srvinfo. Это ахти капитальный момент. Если папку малограмотный скопировать, ведь во новомодный сервер безграмотный подцепится ведомость баз.
Старый сервер 0.2 ни во коем случае не велено удалять. В целом, его не насчет частностей не запрещается отнюдь не удалять, получи всяк случай.

Теперь устанавливаем сервер 0с 0.3.
В процессе установки склифосовский задан злоба дня относительно единый язык, буде ОСь в сервере английская, так не чета руками удосужиться Русский язык. Далее возле выборе пользователя оставляем пользователя ото 0.2 равно беспременно вводим его нынешний слово во обеих полях внизу. Драйвер аппаратной лицензии, разве используются пин-коды, назначать безграмотный нужно.
После успешной установки 0.3 заходим во кронштейн администрирования равным образом смотрим опись баз, безвыездно базы должны подцепиться.

После того на правах сервер 0с 0.3 запущен, надобно настроить границы работы сервера 0с. В частности издержка памяти равно доля баз да пользователей получи и распишись 0 пролетарский слушание сервера.
В рента администрирования сервера 0с на дереве по левую сторону ищем страсть «Локальный кластер», правой клавишей мыши — Свойства. Правим параметр — «Допустимый диапазон памяти». Я поставил 0097152 Kb, сие 0Гб. «Интервал превышения допустимого объема памяти» — 00 секунд. Если течение превысит возможный объем, так спирт довольно перезапущен, присутствие этом пользователи однако переключатся бери остальной процесс.
Далее во дереве раскрываем разблюдник «Рабочие серверы» да в нашем сервере нажимаем правой клавишей мыши, выбираем свойства. Здесь никуда не денешься найти количество памяти, тот или другой доступен серверу 0с. Это указывается во пункте «Максимальный мера памяти рабочих процессов». Т.к. у сервера общей сложности 04Гб памяти, в таком случае ваш покорный слуга поставил 02Гб в целях 0с. В байтах сие довольно 03622320128.
Здесь а указываем часть информационных баз бери движение равно численность соединений в процесс. Я указал 0 да 05 соответственно.
После внесения изменений перезапускать сервер никак не обязательно, постоянно настройки подхватываются налету. Хотя интересах надежности повторный запуск безграмотный помешает. Достаточно перезапустить службу сервера 0с.

В отличии ото 0.2 на 0.3 неграмотный нужно автоматизированный производить трудящиеся процессы, они создаются автоматично по мнению мере необходимости


http://infostart.ru/public/193674/

Запрос отнюдь не весь, а всего лишь чисто эту часть:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

DECLARE @dbid AS smallint;
use [ВАШАБАЗА];
SET @dbid=DB_ID();

/*кто кого*/
SELECT DB_NAME(pr1.dbid) AS ‘DB’
,pr1.spid AS ‘ID жертвы’
,RTRIM(pr1.loginame) AS ‘Login жертвы’
,pr2.spid AS ‘ID виновника’
,RTRIM(pr2.loginame) AS ‘Login виновника’
,pr1.program_name AS ‘программа жертвы’
,pr2.program_name AS ‘программа виновника’
,txt.[text] AS ‘Запрос виновника’
FROM MASTER.dbo.sysprocesses pr1(NOLOCK)
JOIN MASTER.dbo.sysprocesses pr2(NOLOCK)
ON (pr2.spid=pr1.blocked)
OUTER APPLY sys.[dm_exec_sql_text](pr2.[sql_handle]) AS txt
WHERE pr1.blocked 0


Внешняя печатная вид безграмотный сохраняла настроек печати.  Добавил адрес
ТабДокумент =Новый ТабличныйДокумент;
 
 // Зададим границы печатной стать объединение умолчанию
 ТабДокумент.РазмерКолонтитулаСверху=10;
 ТабДокумент.РазмерКолонтитулаСнизу =10;
 ТабДокумент.АвтоМасштаб            =Истина;
 ТабДокумент.ОриентацияСтраницы     =ОриентацияСтраницы.Ландшафт;
 
 ТабДокумент.ПолеСверху=10;
 ТабДокумент.ПолеСлева=10;
 ТабДокумент.ПолеСнизу=10;
 ТабДокумент.ПолеСправа=10;
  
 // Восстановим установленные пользователем мера печатной фигура
 ТабДокумент.ИмяПараметровПечати=«ПАРАМЕТРЫ_ПЕЧАТИ_ВнешняяПечатнаяФорма»;

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

По всему наверно довольно строки

Восстановим установленные пользователем величина печатной телосложение
 ТабДокумент.ИмяПараметровПечати=«ПАРАМЕТРЫ_ПЕЧАТИ_ВнешняяПечатнаяФорма»;

Если будете воспроизводить адрес обратите забота какие у Вас будут кавычки!!!!

Не могу осмыслить вследствие чего во других внешних формах сего неграмотный требовалось.
Взято из http://myconsult2.ru/?p=414


Почему-то был прежде упертости уверен, ась? какой-то характерный пароль, тот или иной задается около создании базы во кластере 0 с. Оказалось, зачем без труда нужна учетка получи 0с предприятии не без; полными правами.


В УПП во общих модулях глотать «УниверсальныеМеханизмы» А на нем в конечном счете функции ПолучитьНастройку

В СтруктуруНастройка передаем ИмяОбъекта, Пользователя, НаименованиеНастройки,

Функция ПолучитьНастройку(СтруктураНастройки) Экспорт

Если ТипЗнч(СтруктураНастройки) <> Тип(«Структура») Тогда

Возврат Ложь;

КонецЕсли;

Запрос=Новый Запрос(
«ВЫБРАТЬ
| СохраненныеНастройки.Пользователь,
| СохраненныеНастройки.ИмяОбъекта,
| СохраненныеНастройки.НаименованиеНастройки КАК НаименованиеНастройки,
| СохраненныеНастройки.СохраненнаяНастройка,
| СохраненныеНастройки.ИспользоватьПриОткрытии,
| СохраненныеНастройки.СохранятьАвтоматически
|ИЗ
| РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
|ГДЕ
| СохраненныеНастройки.ИмяОбъекта=&ИмяОбъекта
| И СохраненныеНастройки.Пользователь=&Пользователь
| И СохраненныеНастройки.НаименованиеНастройки=&НаименованиеНастройки»);

Если СтруктураНастройки.Свойство(«Пользователь») Тогда

Запрос.УстановитьПараметр(«Пользователь», СтруктураНастройки.Пользователь);

Иначе

Запрос.УстановитьПараметр(«Пользователь», ПараметрыСеанса.ТекущийПользователь);

КонецЕсли;

Запрос.УстановитьПараметр(«ИмяОбъекта», СтруктураНастройки.ИмяОбъекта);
Запрос.УстановитьПараметр(«НаименованиеНастройки», СтруктураНастройки.НаименованиеНастройки);

РезультатЗапроса=Запрос.Выполнить();

Если РезультатЗапроса.Пустой() Тогда

Возврат Ложь;

Иначе

ВыборкаИзРезультатаЗапроса=РезультатЗапроса.Выбрать();
ВыборкаИзРезультатаЗапроса.Следующий();

СтруктураНастройки.Вставить(«СохраненнаяНастройка», ВыборкаИзРезультатаЗапроса.СохраненнаяНастройка.Получить());
СтруктураНастройки.Вставить(«ИспользоватьПриОткрытии», ВыборкаИзРезультатаЗапроса.ИспользоватьПриОткрытии);
СтруктураНастройки.Вставить(«СохранятьАвтоматически», ВыборкаИзРезультатаЗапроса.СохранятьАвтоматически);

КонецЕсли;

Возврат Истина;

КонецФункции // ПолучитьНастройку()


Взято со инфостарта .

ТабНоменклатура- табличная пакет обработки.

&НаСервере
Процедура СохранитьНастройки()
КлючНастроек=«ВнешняяОбработка.ВыгрузкаНоменклатуры»;
Настройки=Новый Соответствие;
Настройки.Вставить(«ТабНоменклатура», Объект.ТабНоменклатура.Выгрузить());
Настройки.Вставить(«ИмяФайла», Объект.ИмяФайла);
Настройки.Вставить(«ПарольФТП», Объект.ПарольФТП);
Настройки.Вставить(«ПользовательФТП», Объект.ПользовательФТП);
Настройки.Вставить(«СерверФТП», Объект.СерверФТП);
Настройки.Вставить(«РабочийКаталог», Объект.РабочийКаталог);
ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(«ВнешняяОбработка.ВыгрузкаНоменклатуры», КлючНастроек, Настройки);
КонецПроцедуры

&НаСервере
Процедура ВосстановитьНастройки()
КлючНастроек=«ВнешняяОбработка.ВыгрузкаНоменклатуры»;
ЗначениеНастроек=ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(«ВнешняяОбработка.ВыгрузкаНоменклатуры», КлючНастроек);
Если ТипЗнч(ЗначениеНастроек)=Тип(«Соответствие») Тогда
ЗначениеИзНастройки=ЗначениеНастроек.Получить(«ТабНоменклатура»);
Объект.ИмяФайла=ЗначениеНастроек.Получить(«ИмяФайла»);
Объект.ПарольФТП=ЗначениеНастроек.Получить(«ПарольФТП»);
Объект.ПользовательФТП=ЗначениеНастроек.Получить(«ПользовательФТП»);
Объект.СерверФТП=ЗначениеНастроек.Получить(«СерверФТП»);
Объект.РабочийКаталог=ЗначениеНастроек.Получить(«РабочийКаталог»);
Если ТипЗнч(ЗначениеИзНастройки)=Тип(«ТаблицаЗначений») Тогда
Объект.ТабНоменклатура.Загрузить(ЗначениеИзНастройки);
КонецЕсли;
КонецЕсли;
КонецПроцедуры


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

Отбор = Новый Структура ( «Номенклатура» , ПараметрКоманды ); ПараметрыФормы = недавний конфигурация ( «СформироватьПриОткрытии,Отбор, КлючВарианта» , Истина , Отбор , «ИМЯВАРИАНТА» ); ОткрытьФорму ( «Отчет.Продажи.Форма» , ПараметрыФормы , ПараметрыВыполненияКоманды . Источник , ПараметрыВыполненияКоманды . Уникальность , ПараметрыВыполненияКоманды . Окно , ПараметрыВыполненияКоманды . НавигационнаяСсылка );

Иными словами третьим параметром передаем КлючВарианта — НазваниеНужного Варианта.


А выведите нам любезен код, номенклатуру равно штрихкода, притом последние помощью запятую. И до оный поры чтоб позволено было подбирать в области группам номенклатуры. Да автор туман учинить только лишь так, однако совершенно дозволяется было получит да на СКД вот пример: http://softmaker.kz/files/otchety-1s/primer-ispolzovaniya-funkcij-skd-massiv-array-i-soedinitstroki-joinstrings-v-otchyote-1s-8.html

Ну ежели который знает равно как сие изготовить токмо на СКД подскажите. Теперь равно мы знаю.

Мне посчастливилось тока так:

Создал ВнешниюОбработку, добавил форму. В форме создал принадлежность ТЗ — действительно табличка значений да во ней три реквизита: Код, Наименование, Штрикод. Ну равно команду Сформировать равным образом имущество  с типом СправочникСсылка.Номенклатура. Переносим безвыездно для форму. И создаем обрабатыватель команды. Собственно весь соображение спервоначала получаем запросом всю номенклатуру, группируем её, чтоб выгнать повторяющиеся, А впоследствии перебираем значения результата запроса да подставляем во ТЗ, а в некоторых случаях рукоделие доходит давно колонки штришок кодов создаем представление региструСведений.Штрихкодов да устанавливаем параметр наречение номенклатуры, получаем всегда штрихкоды этой номенклатуры, перебираем по сию пору добавляя  последовательно на переменную сквозь запятую, равно впоследствии обхода выводим вывод на колонку, равным образом всё сначала.

&НаКлиенте
Процедура Сформировать(Команда)
СоздатьНаСервере();
КонецПроцедуры
&НаСервере
Процедура СоздатьНаСервере()
тз.Очистить();
Запрос=Новый Запрос;
Запрос.Текст=
«ВЫБРАТЬ
| Товар.Код,
| Товар.Наименование
|ИЗ
| Справочник.Номенклатура КАК Товар
|ГДЕ
| Товар.ЭтоГруппа=ЛОЖЬ
| И Товар.Родитель В ИЕРАРХИИ(&Родитель)
|
|СГРУППИРОВАТЬ ПО
| Товар.Код,
| Товар.Наименование»;
запрос.УстановитьПараметр(«Родитель»,Группа);
РезультатЗапроса=Запрос.Выполнить();
ВыборкаДетальныеЗаписи=РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
НоваяСтрока=ТЗ.Добавить();
НоваяСтрока.Код=ВыборкаДетальныеЗаписи.Код;
НоваяСтрока.Наименование=ВыборкаДетальныеЗаписи.Наименование;
Запрос1=Новый Запрос;
Запрос1.Текст=
«ВЫБРАТЬ
| ШтрихкодыНоменклатуры.Штрихкод
|ИЗ
| РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
|ГДЕ
| ШтрихкодыНоменклатуры.Номенклатура.Наименование=&Наименование»;

запрос1.УстановитьПараметр(«Наименование»,ВыборкаДетальныеЗаписи.Наименование);
РезультатЗапроса1=Запрос1.Выполнить();
ВыборкаДетальныеЗаписи1=РезультатЗапроса1.Выбрать();
ШтрихКод=«»;
Пока ВыборкаДетальныеЗаписи1.Следующий() Цикл
штрихКод=ШтрихКод+Строка(ВыборкаДетальныеЗаписи1.ШтрихКод+»,»);
КонецЦикла;
НоваяСтрока.ШтрихКод=ШтрихКод;
КонецЦикла
КонецПроцедуры

Самое прикольное сие мораль результата получи форму. Запрос возвращает ТаблицуЗначений, а на тонком клиенте ТаблицаЗначений невыгодный работает. Поэтому установка НаСервере. Пытался раскопать во приговор на интернете равно гуглил равно яндил. Чушня какая-то только. Наверно сие до ёбаный степени тривиальная задача, сиречь сверху практике боссам  по продажам отродясь не требовалась. А может лукавство на томишко что-то нужно постановить как всего только на СКД.

копирайт

Задача: Нужно всегда заезжий дом реализаций по части одному товару вделать на одну ячейку.

Что-то вроде: ассортимент | кол-во | 001, 002, да т.д. |

Будем эксплуатировать представление ко регистру сбережения «РеализацияТМЗ».

 ВЫБРАТЬ
  РеализацияТМЗ  .  Регистратор  .  Номер  ,  
  РеализацияТМЗ  .  Номенклатура  ,  
  РеализацияТМЗ  .  Регистратор  ,  
  РеализацияТМЗ  .  КоличествоОборот
   ИЗ  
  РегистрНакопления  .  РеализацияТМЗ  .  Обороты
   (   ,   ,  Регистратор  ,   )  КАК РеализацияТМЗ
  

Регистру капитал «РеализацияТМЗ» существует в духе во конфигурации Бухгалтерия, круглым счетом равно на конфигурации Управление торговым предприятием (УТП). Узнайте, в духе на конфигурации УТП поставить атрибут «Услуга» на элементе справочника «Номенклатура». Поэтому, за скачивания, ради проверки его работоспособности вас можете стартовать таковой отчёт во обоих конфигурациях.

Реализация поставленной задачи от применением функций СКД Массив да СоединитьСтроки

  1. Создадим свежеиспеченный подборка данных.
  2. Вставим на него, вышеуказанный запрос.
  3. Перейдём получи закладку «Вычисляемые поля» да добавим новую запись.
  4. В луг «Путь ко данным» напишем МассивНомеров .
  5. В поляна «Выражение» напишем Массив(РегистраторНомер) .

    Создание вычисляемого полина не без; функцией СКД Массив (Array)

  6. Перейдём получай закладку «Ресурсы» да добавим новые деловой дневник изо раздела «Доступные поля», используя кнопку «>».
  7. Добавим МассивНомеров .
  8. В равнина «Выражение» напишем СоединитьСтроки (Массив(РегистраторНомер),»,»,»») .
  9. В пашня «Рассчитывать по…» выберем Номенклатура .
  10. Добавим КоличествоОборот .
  11. В край «Выражение» напишем Сумма(КоличествоОборот) .
  12. В край «Рассчитывать по…» выберем Номенклатура .

    Создание ресурсов полина  со функцией СКД СоединитьСтроки (JoinStrings)

  13. Перейдём для закладку «Настройки» равным образом добавим новую группировку номенклатура.
  14. Зесь но в закладке «Выбранные поля» добавим новые полина с раздела «Доступные поля», используя кнопку «>». Выберем три полина «Номенклатура», «МассивНомеров», «КоличествоОборот».

    Настройка группировок равным образом полей отчёта СКД

  15. И наконец, перейдём получай закладку «Другие настройки» равным образом изменим двум строки «Расположение общих итогов объединение горизонтали» равно «Расположение общих итогов за вертикали».
  16. В равнина «Значение» установим значимость «Нет». Это что поделаешь к запрета вывода итогов.

    Настройка вывода итогов СКД

Такие а шаги, хотя не без; некоторыми дополнениями, были использованы рядом созданиии отчёта в рассуждении продаже номенклатуры сообразно ГТД .

Описание функции СоединитьСтроки (JoinStrings)

СоединитьСтроки (JoinStrings)

Используется на объединения строк во одну строку.

Синтаксис:

СоединитьСтроки (Значение, РазделительЭлементов, РазделителиКолонок)

Параметры:

  1. Значение — выражения, которые нужно сплотить во одну строку. Если является Массивом, так во строку будут стабуниваться слои массива. Если является ТаблицаЗначений, так во строку будут синдицироваться всё-таки колонки равным образом строки таблицы;
  2. РазделительЭлементов — строка, содержащая текст, тот или другой нужно утилизировать на качестве разделителя посреди элементами массива равно строками таблицы значений. По умолчанию – знак перевода строк;
  3. РазделителиКолонок -строка, содержащая текст, который-нибудь нужно эксплуатнуть во качестве разделителя в среде колонками таблицы значений. По умолчанию «;».

Вопросы держи собеседовании ООО «Вайлдберриз». О моя персона пусть даже что такое? помнил,  но разом на лету безвыгодный воспроизвел, а может через меня а другого хотели….Чьёрт его знает, моя персона такое на этом месте сейчас писал, же на этом месте сильнее полно.

Последовательность запуска событий близ записи:  

0)    Модуль формы  ПередЗаписью(Отказ, ПараметрыЗаписи)  

0)  Модуль формы  ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)

0)  Модуль объекта  ОбработкаПроверкиЗаполнения (Отказ, ПроверяемыеРеквизиты)

0)  Модуль склад ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

Начало транзакции

0)     Модуль объекта ПередЗаписью(Отказ)

Запись

0)    Модуль объекта ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)

Или

ПриУстановкеНовогоКода(СтандартнаяОбработка,Префикс)

0)  Модуль объекта ПриЗаписи(Отказ)

0)      Модуль формы  ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

Завершение  транзакции

0)      Модуль телосложение ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)

00)      Модуль склад ПослеЗаписи(ПараметрыЗаписи) 


На сервере создаем  WEB-сервис ОбменДанными

обменДанными1

равно возьми закладке накипь

обменДанными

Добавляем операции равным образом параметр

операции1

операции2

Прописываем модуль.

Функция ВыполнитьОбмен(Данные)
Соответствие=Десериализовать(Данные);
Для Каждого Дан с Соответствие Цикл
Если Дан.Ключ=Тип(«СправочникСсылка.Номенклатура») Тогда
ЗагрузитьСправочники(Дан.Значение)
ИначеЕсли Дан.Ключ=Тип(«ДокументСсылка.ПоступлениеТоваровИУслуг») Тогда
ЗагрузитьДокумент(Дан.Значение)
КонецЕсли;
КонецЦикла;

Возврат СоздатьОтветКлиенту();
КонецФункции

#Область Сериализаци
Функция Десериализовать(XMLСтруктураСериализованногоОбъекта)
ЧтениеXMLДанных=Новый ЧтениеXML;
ЧтениеXMLДанных.УстановитьСтроку(XMLСтруктураСериализованногоОбъекта);
ТЗ=СериализаторXDTO.ПрочитатьXML(ЧтениеXMLДанных);
ЧтениеXMLДанных.Закрыть();
Возврат ТЗ;
КонецФункции
Функция Сериализовать(ОбъектСериализации)
ДеревоВОбъектеXDTO=СериализаторXDTO.ЗаписатьXDTO(ОбъектСериализации);
МойXML=Новый ЗаписьXML;
МойXML.УстановитьСтроку();
ФабрикаXDTO.ЗаписатьXML(МойXML, ДеревоВОбъектеXDTO);
Возврат МойXML.Закрыть();
КонецФункции
#КонецОбласти

Функция СоздатьОтветКлиенту()
Соответствие=Новый Соответствие;
Соответствие.Вставить(ТипЗнч(Справочники.Номенклатура.ПустаяСсылка()),СформироватьСправочники());
Соответствие.Вставить(ТипЗнч(Документы.ПоступлениеТоваровИУслуг.ПустаяСсылка()),СформироватьДокументы());
Возврат Сериализовать(Соответствие)
КонецФункции

Функция СформироватьСправочники()
Запрос=Новый Запрос;
Запрос.Текст=
«ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.ПометкаУдаления,
| Номенклатура.Родитель,
| Номенклатура.ЭтоГруппа,
| Номенклатура.Код,
| Номенклатура.Наименование
|ИЗ
| Справочник.Номенклатура КАК Номенклатура»;

Возврат Запрос.Выполнить().Выгрузить();

КонецФункции

Функция СформироватьДокументы()
Запрос=Новый Запрос;
Запрос.Текст=
«ВЫБРАТЬ
| ПоступлениеТоваровИУслуг.Ссылка,
| ПоступлениеТоваровИУслуг.ПометкаУдаления,
| ПоступлениеТоваровИУслуг.Номер,
| ПоступлениеТоваровИУслуг.Дата,
| ПоступлениеТоваровИУслуг.Проведен
|ИЗ
| Документ.ПоступлениеТоваровИУслуг КАК ПоступлениеТоваровИУслуг»;
Массив=Новый Массив;

Результат=Запрос.Выполнить().Выгрузить();
Для Каждого Док Из Результат Цикл
Структура=Новый Структура();
СтруктураРек=Новый Структура;
Для Каждого Кол Из Результат.Колонки Цикл
СтруктураРек.Вставить(Кол.Имя,Док[Кол.Имя]);
КонецЦикла;

Структура.Вставить(«Реквизиты»,СтруктураРек);
Структура.Вставить(«Товары»,Док.Ссылка.Товары.Выгрузить());
Массив.Добавить(Структура);
КонецЦикла;

Возврат Массив;

КонецФункции

Процедура ЗагрузитьСправочники(ТЗ)
Для Каждого Спр Из ТЗ Цикл
Если ЗначениеЗаполнено(Спр.Ссылка.Код) Тогда
НовСпр=Спр.Ссылка.ПолучитьОбъект();
Иначе
НовСпр=Справочники.Номенклатура.СоздатьЭлемент();
НовСпр.УстановитьСсылкуНового(Спр.Ссылка);
КонецЕсли;
НовСпр.Код=Спр.Код;
НовСпр.Наименование=Спр.Наименование;
НовСпр.Записать();
КонецЦикла;
КонецПроцедуры

Процедура ЗагрузитьДокумент(Массив)
Для Каждого Док Из Массив Цикл
Если ЗначениеЗаполнено(Док.Реквизиты.Ссылка.Номер) Тогда
НовДок=Док.Реквизиты.Ссылка.ПолучитьОбъект();
Иначе
НовДок=Документы.ПоступлениеТоваровИУслуг.СоздатьДокумент();
НовДок.УстановитьСсылкуНового(Док.Реквизиты.Ссылка);
КонецЕсли;
НовДок.Номер=Док.Реквизиты.Номер;
НовДок.Дата=Док.Реквизиты.Дата;
НовДок.Комментарий=ТекущаяДата();
НовДок.Товары.Загрузить(Док.Товары);

НовДок.Записать();
КонецЦикла;
КонецПроцедуры

Публикуем web-сервис, получаем ws-ссылку равным образом прописываем её для клиенте.

На клиенте создаем общую команду команду ВыполнитьОбменДанными:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ВыполнитьОбменДанными()
КонецПроцедуры
&НаСервере
Функция ВыполнитьОбменДанными()
Соединение=WSСсылки.ОбменДанными.СоздатьWSПрокси(«ОбменДанными»,»ОбменДанными»,»ОбменДаннымиSoap»);
Операция=Соединение.ТочкаПодключения.Интерфейс.Операции.Получить(«ВыполнитьОбмен»);
СтрокаДанных=Соединение.ФабрикаXDTO.Создать(Операция.Параметры.Получить(«Данные»).Тип,СформироватьДанныеДляСервера());
Ответ=Десериализовать(Соединение.ВыполнитьОбмен(СтрокаДанных));
Для Каждого Дан с Ответ Цикл
Если Дан.Ключ=Тип(«СправочникСсылка.Номенклатура») Тогда
ЗагрузитьСправочники(Дан.Значение)
ИначеЕсли Дан.Ключ=Тип(«ДокументСсылка.ПоступлениеТоваровИУслуг») Тогда
ЗагрузитьДокумент(Дан.Значение)
КонецЕсли;
КонецЦикла;
КонецФункции

Процедура ЗагрузитьСправочники(ТЗ)
Для Каждого Спр Из ТЗ Цикл
Если ЗначениеЗаполнено(Спр.Ссылка.Код) Тогда
НовСпр=Спр.Ссылка.ПолучитьОбъект();
Иначе
НовСпр=Справочники.Номенклатура.СоздатьЭлемент();
НовСпр.УстановитьСсылкуНового(Спр.Ссылка);
КонецЕсли;
НовСпр.Код=Спр.Код;
НовСпр.Наименование=Спр.Наименование;
НовСпр.Записать();
КонецЦикла;
КонецПроцедуры

Процедура ЗагрузитьДокумент(Массив)
Для Каждого Док Из Массив Цикл
Если ЗначениеЗаполнено(Док.Реквизиты.Ссылка.Номер) Тогда
НовДок=Док.Реквизиты.Ссылка.ПолучитьОбъект();
Иначе
НовДок=Документы.ПоступлениеТоваровИУслуг.СоздатьДокумент();
НовДок.УстановитьСсылкуНового(Док.Реквизиты.Ссылка);
КонецЕсли;
НовДок.Номер=Док.Реквизиты.Номер;
НовДок.Дата=Док.Реквизиты.Дата;

НовДок.Товары.Загрузить(Док.Товары);

НовДок.Записать();
КонецЦикла;
КонецПроцедуры

&НаСервере
Функция СформироватьДанныеДляСервера()

Соответствие=Новый Соответствие;
Спр=Справочники.Номенклатура.Выбрать();
ТЗ=Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить(«Код»);
ТЗ.Колонки.Добавить(«Ссылка»);
ТЗ.Колонки.Добавить(«Наименование»);
Пока Спр.Следующий() Цикл
НовСтр=ТЗ.Добавить();
НовСтр.Код=Спр.Код;
НовСтр.Ссылка=Спр.Ссылка;
НовСтр.Наименование=Спр.Наименование;
КонецЦикла;
Соответствие.Вставить(ТипЗнч(Справочники.Номенклатура.ПустаяСсылка()),ТЗ);

Док=Документы.ПоступлениеТоваровИУслуг.Выбрать();
Массив=Новый Массив;
Пока Док.Следующий() Цикл
Структура=Новый Структура();
СтруктураРек=Новый Структура;
СтруктураРек.Вставить(«Номер»,Док.Номер);
СтруктураРек.Вставить(«Дата»,Док.Дата);
СтруктураРек.Вставить(«Ссылка»,Док.Ссылка);
Структура.Вставить(«Реквизиты»,СтруктураРек);
Структура.Вставить(«Товары»,Док.Ссылка.Товары.Выгрузить());
Массив.Добавить(Структура);
КонецЦикла;
Соответствие.Вставить(ТипЗнч(Документы.ПоступлениеТоваровИУслуг.ПустаяСсылка()),Массив);
Возврат Сериализовать(Соответствие);
КонецФункции

#Область Сериализаци
&НаСервере
Функция Десериализовать(XMLСтруктураСериализованногоОбъекта)
ЧтениеXMLДанных=Новый ЧтениеXML;
ЧтениеXMLДанных.УстановитьСтроку(XMLСтруктураСериализованногоОбъекта);
ТЗ=СериализаторXDTO.ПрочитатьXML(ЧтениеXMLДанных);
ЧтениеXMLДанных.Закрыть();
Возврат ТЗ;
КонецФункции
&НаСервере
Функция Сериализовать(ОбъектСериализации)
ДеревоВОбъектеXDTO=СериализаторXDTO.ЗаписатьXDTO(ОбъектСериализации);
МойXML=Новый ЗаписьXML;
МойXML.УстановитьСтроку();
ФабрикаXDTO.ЗаписатьXML(МойXML, ДеревоВОбъектеXDTO);
Возврат МойXML.Закрыть();
КонецФункции
#КонецОбласти

Взято от курсов Насипова.


Функция Сериализовать(ОбъектСериализации)
ДеревоВОбъектеXDTO=СериализаторXDTO.ЗаписатьXDTO(ОбъектСериализации);
МойXML=Новый ЗаписьXML;
МойXML.УстановитьСтроку();
ФабрикаXDTO.ЗаписатьXML(МойXML, ДеревоВОбъектеXDTO);
Возврат МойXML.Закрыть();
КонецФункции


Функция Десериализовать(XMLСтруктураСериализованногоОбъекта)
ЧтениеXMLДанных=Новый ЧтениеXML;
ЧтениеXMLДанных.УстановитьСтроку(XMLСтруктураСериализованногоОбъекта);
ТЗ=СериализаторXDTO.ПрочитатьXML(ЧтениеXMLДанных);
ЧтениеXMLДанных.Закрыть();
Возврат ТЗ;
КонецФункции


Как найти работу валюты изо ЦБ на 0с. Вот лицо целое во всех подробностях описал Ссылка  У меня  1С:Предприятие 0.3 (8.3.5.1383), может поетому пришлось откорректировать всего только :

//Создаем прокси про обращения ко внешнему веб-сервису,
// передаем во функцию URI пространства имен, отчество сервиса, прозвище порта.
Прокси=WSСсылки.WSСсылка.СоздатьWSПрокси(« http://web.cbr.ru/&#187 ;, «DailyInfo», «DailyInfoSoap»);

равно когда-когда описывал  WS-Ссылку ведь просто  www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL

Ссылка получи и распишись конфу  и замечание для обработку .


Установить посчастливилось всего-навсего версию ради 02. Для 04 насколько далеко не пытался, малограмотный получилось. Может без затей подходящий LoadModule неграмотный нашел. Собственно весь регулирование сводится для скачиванию дистрибутива Ссылка . Распаковки его во радикал с: равным образом некоторым изменениям во файле C:\Apache2\conf\httpd.conf. Открываем его во текстовом редакторе ищем незакомментированную строку listen  и заменяем бери Listen 027.0.0.1:80.  Дальше прописываем переменную среды, Компьютер — свойства- Дополнительные параметры, внизу ребенок «Переменные среды», Создаем Переменную PATH, даже если несть  и указываем тракт %PATH%;C:\Apache2\bin .

Собственно всё. Теперь на командной строке набираем httpd -k install. Если ошибок нет. Можно лукнуть дисплей  из bin, стартануть Apache, разинуть конфигуратор 0с равно «Публикация сверху web-Сервере» .

Да даже если нужно выключить обслуживание то:  httpd -k  uninstall. Прежде нежели готовить к печати httpd -удалите службу, неравно возлюбленная установлена.


У Радченко питаться такая вожак за настройке обмена. во ней описывается составляющая фигура «ЗарегестрироватьИзменения»

на Коде у него замечено запрос :

Элементы.ЗарегестрироватьИзменения.Доступность=Ложь;

Получилось всего со таким:
Элементы.ФормаКоманднаяПанель.ПодчиненныеЭлементы.ЗарегистрироватьИзменения.Доступность=Ложь


Ну чисто за день до стало получилось причислить причина с EXCEL, а теперича без затей отупело хочу приманка причина добавить. Тоже создаю команду  «ПростоДокумент» выношу получи форму равным образом описываю действие:

&НаКлиенте
Процедура ПростоДокумент(Команда)
ПростоДокументЭкспорт(ТабличныйДокумент);
КонецПроцедуры

Функция ПростоДокументЭкспорт(ТабличныйДокумент)
ТабличныйДокумент.Очистить();
RowCount=5 ;
ColumnCount=6;
ДляТекста=»Привет»;
Для Column=1 По ColumnCount Цикл
ТабличныйДокумент.Область(«C» + Формат(Column, «ЧГ=»)).ШиринаКолонки=25;
ДляТекста=ДляТекста ;
КонецЦикла;
Для Row=1 По RowCount Цикл
Для Column=1 По ColumnCount Цикл
ТабличныйДокумент.Область(«R» + Формат(Row, «ЧГ=») +»C» + Формат(Column, «ЧГ=»)).Текст=ДляТекста;
ДляТекста=ДляТекста+» 0″;
КонецЦикла;
КонецЦикла;
КонецФункции

Отлично постоянно заполняется. Но в настоящее время ведь нам надобно расчислять это. Оказывается всё ужас просто-напросто

Дописываем процедуру:

Процедура ПростоДокумент(Команда)

 ПростоДокументЭкспорт(ТабличныйДокумент);
ТабДок=ЭтаФорма.ТабличныйДокумент.Область( «R1C1»);
Сообщить(табДок.Текст);
ТабДок=ЭтаФорма.ТабличныйДокумент.Область( «R1C2»);
Сообщить(табДок.Текст);
ТабДок=ЭтаФорма.ТабличныйДокумент.Область( 0,3);
Сообщить(табДок.Текст);
КонецПроцедуры

Иными словами R1C1 — документация изо первого столбца, первой колонки,

допускается не мудрствуя лукаво вследствие запятую постоялый двор указывать безо букв: 0,2(- сие 0 строка,2колонка) иначе 0,3(-это 0 абзац 0 колонка) да т.д., вновь позволено целые области задавать, а тока мы безвыгодный понял ещё в духе впоследствии обманывать их, воообще обидный несладко что-то около в области одной ячейке вытягивать. По идее если бы дозволено области задавать, ведь должна составлять круг обязанностей их обхода. Если сумею встретить расскажу.

Видали каков? Вот сколько следственно ребятня плохо на школе учится:)). А идеже запятые ставить?

Ссылка


0 Создал обработку, на ней форму.

0. Добавил имущество «ТабличныйДокумент» от типом ТабличныйДокумент перетащил бери форму.

0. Создал Команду «ЗагрузитьExcel» в свой черед перетянул получи и распишись форму.

0. Для команды взял адрес изо обработки ЗагрузкаДанныхИзтабличногоДокумента от ИТС:

&НаКлиенте
Процедура ЗагрузитьExcel(Команда)
ДиалогВыбораФайла=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбораФайла.Заголовок=«Прочитать графоаналитический деловая бумага изо файла»;
ДиалогВыбораФайла.Фильтр=«Табличный грамота (Лист Excel (*.xls)|*.xls|»;
Если ДиалогВыбораФайла.Выбрать() Тогда
ФайлНаДиске=Новый Файл(ДиалогВыбораФайла.ПолноеИмяФайла);
мПрочитатьТабличныйДокументИзExcel(ТабличныйДокумент,ДиалогВыбораФайла.ПолноеИмяФайла);
КонецЕсли;
КонецПроцедуры

И по сути дела хозяйка функция: мПрочитатьТабличныйДокументИзExcel

// Функция считывает на графоаналитический подлинник материал с файла на формате Excel
//
// Параметры:
// ТабличныйДокумент — ТабличныйДокумент, во каковой нуждаться пробежать глазами причина
// ИмяФайла — название файла на формате Excel, изо которого никуда не денешься пробежать показатели
// НомерЛистаExcel — факс листа книги Excel, изо которого нельзя не пробежать материал
//
// Возвращаемое значение:
// Истина, ежели обложка прочитан, Ложь — если
//

 Функция мПрочитатьТабличныйДокументИзExcel(ТабличныйДокумент, ИмяФайла, НомерЛистаExcel=1) Экспорт

xlLastCell=11;

ВыбФайл=Новый Файл(ИмяФайла);
Если НЕ ВыбФайл.Существует() Тогда
Сообщить(«Файл никак не существует!»);
Возврат Ложь;
КонецЕсли;

Попытка
Excel=Новый COMОбъект(«Excel.Application»);
Excel.WorkBooks.Open(ИмяФайла);
//Состояние(«Обработка файла Microsoft Excel…»);
ExcelЛист=Excel.Sheets(НомерЛистаExcel);
Исключение
Сообщить(«Ошибка. Возможно фальшиво указан стриптиз листа книги Excel.»);
Возврат ложь;

КонецПопытки;

ТабличныйДокумент.Очистить();

ActiveCell=Excel.ActiveCell.SpecialCells(xlLastCell);
RowCount=ActiveCell.Row;
ColumnCount=ActiveCell.Column;
Для Column=1 По ColumnCount Цикл
ТабличныйДокумент.Область(«C» + Формат(Column, «ЧГ=»)).ШиринаКолонки=ExcelЛист.Columns(Column).ColumnWidth;
КонецЦикла;
Для Row=1 По RowCount Цикл

Для Column=1 По ColumnCount Цикл
ТабличныйДокумент.Область(«R» + Формат(Row, «ЧГ=») +»C» + Формат(Column, «ЧГ=»)).Текст=ExcelЛист.Cells(Row,Column).Text;
КонецЦикла;

КонецЦикла;

Excel.WorkBooks.Close();
Excel=0;

Возврат Истина;

КонецФункции // ()

СсылкаНаФайл

У меня  файл из 01000 строк равно 05 столбцами грузился наверно час.

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

Лучше по части полочкам целое разложили нежели мутить.

В обработке до этого времени игрался из загрузкой элементов на зидж из табличной частью. Кому привлекательно посмотрите. Ха автор вебмастер оный ещё. же видишь понадобилось откопать просто-напросто адрес со записью элементов во классификатор из табличной частью, удивительно а было мое обалдайс встретить сие на моем блоге, а сообразно большему поисковики тока ссылки в будто готовые приговор выдают , а ми сие надо?  Ну возьми самом деле дозволено было равно на справке 0с посмотреть. И в таком случае быстрее было бы нежели гуглить, одна невзгода поисковая система в синтаксис-помошнике. Они б не чета безграмотный версии щелкали а на нормальное капитал её провели. Глядишь национальность равным образом прозрел бы.


Добрый вечер, подскажите покорнейше во нежели может оказываться дело.
Пробовал нате двух платформах.
1С 0.2.14.540
1С 0.3.1.538
При выгрузки с базы источника данных (V8Exchan82.epf).
Возникает такая ошибка:
Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1437)
Ошибка присутствие вызове конструктора (Запись Текста).

  • Андреич Шнитов 05.10.2012 во 08:49

    Переключитесь на обработке «Универсальный продуктообмен данными» сверху закладку «Дополнительно». Если край «Имя файла протокола» заполнено – очистите его.
    Повторите выгрузку данных.


Реестр залежные деньги «Продажи»

Результат=Запрос.Выполнить();

Движения.Продажи.Загрузить(Результат.Выгрузить());

Движения.Продажи.Записывать=Истина;

Чтобы принимать лицо движения бить по карману подложить на запросе равнина ВидДвижения=Значение(ВидДвиженияНакопления.Расход)


Оказывается на модуле объекта снедать такая действие
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// Вставить содержание обработчика.
КонецПроцедуры
Где фактически текущий параметр учитывается.
И во стандартный конфигурации ,
ежели проводим сегодняшним счетом прочеркивание называется оперативным равно производится проверка остатков,
а неравно проводим прошлым, в таком случае в виде почему проверять, проводим малограмотный с большой отдачей на терминологии 0с равно нафиг сие контролировать?
Сделано по сути в целях увеличения производительности. Логично конечно, а отнюдь не во этой жизни.
Еще быть проведении документа эффективно у него меняется период проведения,
т.е. сделали прибытие на 00:00
сделали издержка во 01:00,
перепровели наступление 02:00,
целое бить по карману будущие времена переправить отнюдь не получится остатков невыгодный хорош бери 01:00.
 
Что-то моя персона запутался. А будущие времена но равно невыгодный склифосовский проверятся. 
Ха, так возле оперативном тебе грядущее обманывать равным образом безграмотный дадут.

Есть — Проверка характер число.

Нужно быть календарь опробовать безграмотный изменилось ли её значение.

В модуле менеджере вес добавляем процедуру:
Процедура ПередЗаписью(Отказ)

СтЗначение=Константы.Проверка.Получить();
Если СтЗначение <> 0 да СтЗначение<>Значение между тем
сообщить(«Нельзя видоизменять значение»);
отказ=истина;
КонецЕсли;

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

курсы Насипов Фарит.


У документа двум табличные части: Товары, равно Услуги не без; реквизитами Номенклатура —  тип СправочникСсылка.Номенклатура. В справочнике переводу нет атрибут Услуга — субчик Булево.

При выборе с таблицы заслуга нужно с целью выводились токмо услуги, целесообразно товары- товары.

В свойствах номенклатуры реквизита табличной части Услуга выбираем: Параметры выбора: Отбор.Услуга(Истина) , пользу кого Товара отбор.Услуга(Ложь).


В настройках запуска базы, во строке «Дополнительные величина запуска:

/Execute «F:\Продвинутый курс\1\Задания\10\s.epf»

/Execute- экипаж

«F:\Продвинутый курс\1\Задания\10\s.epf» — трасса для файлу обработки

запуск внешней обработки

В справке : Глава Запуск 0с Предприятия, общие мера запуска.

Из Продвинутого курса Насипова.


В менеджере справочника:

Функция ПолучитьСписокКлючевыхПокупателей() Экспорт
Список=Новый СписокЗначений;
ДобавитьЭлементВСписок(Список);

возврат(Список);
КонецФункции

Процедура ДобавитьЭлементВСписок(Список)

ВыборкаСправочника=Справочники.Контрагенты.Выбрать();
Пока ВыборкаСправочника.Следующий() Цикл

Объект=ВыборкаСправочника.ПолучитьОбъект();
Список.Добавить(Объект.Наименование);
КонецЦикла;
КонецПроцедуры


Создаем обработку, форму обработки равно на ней имущество
КлючевыеКлиенты равным образом типом СписокЗначений

В модуле формы:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
КлючевыеКлиенты=Справочники.Контрагенты.ПолучитьСписокКлючевыхПокупателей();

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


СоздаемОбработку.

Создаем форму обработки.

Добавляем реквезиты Пн, Вт, Ср, Чт, Пт, Сб, Вс из типом булево.

Рекезит  ТипГрафика — СправочникСсылка.ВидыГрафиковРаботыД

Реквезит — СтандартныйПериод;

Команду Сформировать.

Перетаскиваем до сей времени получи и распишись форму.

Описываем маневр команды

&НаКлиенте
Процедура Сформировать(Команда)
ВыходныеДни=Новый Структура();
Если Пн Тогда
ВыходныеДни.Вставить(«День1»);
КонецЕсли;
Если Вт Тогда
ВыходныеДни.Вставить(«День2»);
КонецЕсли;
Если Ср Тогда
ВыходныеДни.Вставить(«День3»);
КонецЕсли;
Если Чт Тогда
ВыходныеДни.Вставить(«День4»);
КонецЕсли;
Если Пт Тогда
ВыходныеДни.Вставить(«День5»);
КонецЕсли;
Если Сб Тогда
ВыходныеДни.Вставить(«День6»);
КонецЕсли;
Если Вс Тогда
ВыходныеДни.Вставить(«День7»);
КонецЕсли;
СформироватьГрафик(Период.ДатаНачала, Период.ДатаОкончания, ВыходныеДни, ТипГрафика);
КонецПроцедуры

&НаСервереБезКонтекста
Процедура СформироватьГрафик(ДатаНачала, ДатаОкончания, ВыходныеДни, ТипГрафика)
набор=РегистрыСведений.ГрафикРаботыД.СоздатьНаборЗаписей();
Набор.Отбор.ГрафикРаботы.Установить(ТипГрафика);

// графикРаботы — распознавание РегистраСведений.ГрафикРаботыД

Набор.Прочитать();

Ук=0;

ТекДата=ДатаНачала;
Пока ТекДата<=ДатаОкончания Цикл

Пока Ук<=Набор.Количество()-1 И ТекДата>Набор[Ук].Дата Цикл
Ук=Ук +1;
КонецЦикла;

Если Ук>Набор.Количество()-1 ИЛИ ТекДата<>Набор[Ук].Дата Тогда
Запись=Набор.Добавить();
Запись.ГрафикРаботы=ТипГрафика;
Запись.Дата=ТекДата;
Иначе
Запись=Набор[Ук];
КонецЕсли;
Запись.Значение=НЕ (ВыходныеДни.Свойство(«День»+ДеньНедели(ТекДата)));
ТекДата=ТекДата + 04*3600;

КонецЦикла;

Набор.Записать();

КонецПроцедуры // СформироватьГрафик()

Взято с курсов Насипов Фарит.


Есть подлинник Операция  Движения в области регистру бухгалтерии «РегистрХоз»

Создана фигура документа да выведена табличная деление «регистрХоз»

ТаблицаПроводок=Движения.РегистрХоз.Выгрузить();
ГуппируемыеКолонки=»»;

Для каждого Колонка Из ТаблицаПроводок.Колонки Цикл
Если найти(«НомерСтроки, Сумма», Колонка.Имя)>0 Тогда

продолжить;
ГуппируемыеКолонки=ГуппируемыеКолонки+
?(ЗначениеЗаполнено(ГуппируемыеКолонки),»,»,»»)+Колонка.Имя;

КонецЕсли;
КонецЦикла;

ТаблицаПроводок.Свернуть( ГуппируемыеКолонки, «сумма»);

Движения.РегистрХоз.Загрузить();

Источник: Насипов Фарит.


В условии запроса содаем параметр &Субконто,

Далее создаем Массив=Новый Массив;

Массив.Добавить(ПланыВидовХарактеристик.ВидСубконто.Товары);

Массив.Добавить(ПланыВидовХарактеристик.ВидСубконто.Контрагенты);

Запрос.УстановитьПараметр(«Субконто», Массив)

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


Есть счета из субконтами товары, У одних симпатия находится нате субконто1, у других, держи субконто2 либо — либо ещё где.

Нужно извлечь выборку товаров соответственно по всем статьям счетам.

В условии вертуальной таблицы Регистрабухгалтерии.Остатки — во субконто прописываем:

Значение(ПланВидовХарактеристик.ВидСубконто.Товары)


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

ВыборкаТовары=Результат.Выбрать();

Пока ВыборкаТовары.Следующий() Цикл

Сообщение=Новый СообщениеПользователю;
Сообщение.Текст=«Товара » + ВыборкаТовары.Номенклатура + «Не достанет на Количестве» + (-ВыборкаТовары.КоличествоОстатока) ;
Сообщение.Поле=«Товары[«+ВыборкаТовары.НомерСтроки-1+»].Количество» ;
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();


Нужно дабы возле создании нового документа, коли выбран реквизит Менеджер, присутствие выборе контрагента отражались контрагенты исключительно сего менеджера.

В справочниках контрагенты надо присутствовать принадлежность «Ответственное лицо» от типом «СправочникСсылка.Пользователи», в сущности сообразно нему равным образом будет осуществляться выборка на документе.

В документе в соответствии с должны фигурировать реквезиты Менеджер со типом «СправочникСсылка.Пользователи»

да субконтрагент во сойствах которого на связях параметров выбора : Отбор.ОтветственноеЛицо(Менеджер)


Есть бумага не без; табличной долею «Товары» Есть просьба После выполнения запроса: Результат=Запрос.Выполнить; Тоавары.Загрузить(Результат.Выгрузить()); В модуле объекта сиречь на  написать функцию во общем модуле. 0.08


Нужно воеже рядом выборе номенклатуры устанавливалась базовая единичка  по умолчании с справочника номенклатуры(Уп, Шт), же подле желании на документе эту единицу не возбраняется было бы изменить.

Если бы заменять далеко не должно ведь нетрудно перетаскиваем поляна БазоваяЕдиница изо Объекта во азбука табличной части.

ИНаче создаем принадлежность во табличной части документа,  с типом Справочника на котором сии редко кто хранятся.

Для полина номенклатура, выбираем явление  «При изменении»

И дописываем код:

&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
Тд= Элементы.Товары.ТекущиеДанные ;
Тд.БазоваяЕдиницаИЗБазы=ПолучитьДанные(Тд.Номенклатура);
КонецПроцедуры

&НаСервере
Функция ПолучитьДанные(Ссылка)

Возврат(ссылка.БазоваяЕдиница);
КонецФункции // ПолучитьДанные()

И ради созданной фигура документа передвинуть последний принадлежность во табличную часть.


Запрос=Новый Запрос;
Запрос.Текст=
«ВЫБРАТЬ
| ВариантыОбедов.Ссылка
|ИЗ
| Справочник.ВариантыОбедов КАК ВариантыОбедов
|ГДЕ
| (НЕ ВариантыОбедов.ПометкаУдаления)»;

Результат=Запрос.Выполнить();

Список=Новый СписокЗначений;
Список.ЗагрузитьЗначения(Результат.Выгрузить().ВыгрузитьКолонку(«Ссылка»));
Возврат Список;


Существует большое наличность обработчиков связанных не без; записью элемента. Вначале запускаются действие расположенные во модуле формы. Среди них во первую очередность исполняются клиентские обработчики.

0) МФ ПередЗаписью

0) МФ ОбработкаПроверкиЗаполненияНаСервере

0) МО ОбработкаПроверкиЗаполнения

0) МФ ПередЗаписьюНаСервере

0) МО ПередЗаписью

0) МО ПриЗаписи

0) МФ ПриЗаписиНаСервере

0 )МФ После дневник держи сервере

0) МФ После ежедневник


0) Обработка проверки заполнения

0) ПередЗаписью

0) ПриУстановкеНовогоКода

0) ПриЗаписи

При вводе нового:

0) ОбработкаЗаполнения (Ввод свободный сиречь установление получи и распишись основании)

0) либо ПриКопировании

При физическом удалении:

0) ПриУдалении


СписокЗначений=Новый СписокЗначений;
СписокЗначений.Добавить(«Понедельник»);
СписокЗначений.Добавить(«Вторник»);

Список=СписокЗначений.ВыбратьЭлемент()


Есть такая обработка в соответствии с печати ценников во управлении торговли. Нужно на контроль присчитать выборку до документам, на запросе дописал выборку по мнению документам равно колисество изо документа.

В модуле объекта добавил строки выделенные красным.

Процедура ЗаполнитьПостроительОтчета() Экспорт

ТекстЗапроса=«ВЫБРАТЬ
| ИСТИНА КАК Печать,
| СпрНоменклатура.Номенклатура КАК Номенклатура,
| СпрНоменклатура.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| СпрНоменклатура.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
| 0 КАК Цена,
| 0 КАК Количество1,
| ПоступлениеТоваровУслугТовары.Ссылка КАК Док,

| ПоступлениеТоваровУслугТовары.Количество КАК Количество
|ИЗ
| Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| СпрНоменклатура.Ссылка КАК Номенклатура,
| ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК ХарактеристикаНоменклатуры
| ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура
| ГДЕ
| (НЕ СпрНоменклатура.ЭтоГруппа)
| {ГДЕ
| СпрНоменклатура.Ссылка.* КАК Номенклатура}
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| СпрХарактеристики.Владелец,
| СпрХарактеристики.Ссылка
| ИЗ
| Справочник.ХарактеристикиНоменклатуры КАК СпрХарактеристики
| {ГДЕ
| СпрХарактеристики.Владелец.* КАК Номенклатура,
| СпрХарактеристики.Ссылка.* КАК ХарактеристикаНоменклатуры}) КАК СпрНоменклатура
| ПО ПоступлениеТоваровУслугТовары.Номенклатура=СпрНоменклатура.Номенклатура»;

Если ТолькоИмеющиесяВНаличии Тогда
ТекстЗапроса=ТекстЗапроса + »
|ЛЕВОЕ СОЕДИНЕНИЕ
| (ВЫБРАТЬ
| НаСкладе.Номенклатура,
| НаСкладе.ХарактеристикаНоменклатуры,
| СУММА(НаСкладе.Количество) КАК Количество
| ИЗ
| (ВЫБРАТЬ
| НаСкладе.Номенклатура,
| НаСкладе.ХарактеристикаНоменклатуры,
| НаСкладе.КоличествоОстаток КАК Количество
| ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(, {Номенклатура.* КАК Номенклатура,
| ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
| Склад.* КАК Склад}) КАК НаСкладе
| ОБЪЕДИНИТЬ ВСЕ
| ВЫБРАТЬ
| ВРознице.Номенклатура,
| ВРознице.ХарактеристикаНоменклатуры,
| ВРознице.КоличествоОстаток КАК Количество
| ИЗ
| РегистрНакопления.ТоварыВРознице.Остатки(, {Номенклатура.* КАК Номенклатура,
| ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
| Склад.* КАК Склад}) КАК ВРознице
| ОБЪЕДИНИТЬ ВСЕ
| ВЫБРАТЬ
| ВНТТ.Номенклатура,
| ВНТТ.ХарактеристикаНоменклатуры,
| ВНТТ.КоличествоОстаток КАК Количество
| ИЗ
| РегистрНакопления.ТоварыВНТТ.Остатки(, {Номенклатура.* КАК Номенклатура,
| ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
| Склад.* КАК Склад}) КАК ВНТТ
| ) КАК НаСкладе
| СГРУППИРОВАТЬ ПО
| НаСкладе.Номенклатура,
| НаСкладе.ХарактеристикаНоменклатуры
| ) КАК НаСкладе
|ПО
| СпрНоменклатура.Номенклатура=НаСкладе.Номенклатура
| И СпрНоменклатура.ХарактеристикаНоменклатуры=НаСкладе.ХарактеристикаНоменклатуры
|ГДЕ
| ЕСТЬNULL(НаСкладе.Количество, 0) > 0
|»;
КонецЕсли;

ТекстЗапроса=ТекстЗапроса + »
|УПОРЯДОЧИТЬ ПО
| СпрНоменклатура.Номенклатура.Наименование,
| СпрНоменклатура.ХарактеристикаНоменклатуры.Наименование
|»;

// Соответствие имен полей во запросе равным образом их представлений во отчете.
СтруктураПредставлениеПолей1=Новый Структура(
«Номенклатура, ХарактеристикаНоменклатуры, Склад»,
«Номенклатура», «Характеристика номенклатуры», «Склад»);

ПостроительОтчета.Текст=ТекстЗапроса;

ПостроительОтчета.ЗаполнитьНастройки();

// Создадим перечень доступных отборов.
СоответствиеДоступныхОтборов=Новый Соответствие;
СоответствиеДоступныхОтборов.Вставить(«Номенклатура», 0);
СоответствиеДоступныхОтборов.Вставить(«ХарактеристикаНоменклатуры», 0);
СоответствиеДоступныхОтборов.Вставить(«Склад», 0);
СоответствиеДоступныхОтборов.Вставить(«Док», 0);

Для Каждого ДоступноеПоле Из ПостроительОтчета.ДоступныеПоля Цикл
Если СоответствиеДоступныхОтборов[ДоступноеПоле.Имя]=Неопределено Тогда
ДоступноеПоле.Отбор=Ложь;
Иначе
ДоступноеПоле.Отбор=Истина;
КонецЕсли;
КонецЦикла;

// Создадим сосредоточение отборов.
МассивОтбора=Новый Массив;
МассивОтбора.Добавить(«Номенклатура»);
МассивОтбора.Добавить(«ХарактеристикаНоменклатуры»);
МассивОтбора.Добавить(«Док»);

Если ТолькоИмеющиесяВНаличии Тогда
МассивОтбора.Добавить(«Склад»);
КонецЕсли;

Для Каждого ЭлементОтбора Из МассивОтбора Цикл
Если ПостроительОтчета.Отбор.Найти(ЭлементОтбора)=Неопределено Тогда
ПостроительОтчета.Отбор.Добавить(ЭлементОтбора);
КонецЕсли;
КонецЦикла;

// Вызовем стандартную процедуру заполнения представлений.
УправлениеОтчетами.ЗаполнитьПредставленияПолей(СтруктураПредставлениеПолей1, ПостроительОтчета);

КонецПроцедуры // ЗаполнитьПостроительОтчета()


0. Создать основную форму отчета.

0. Добавить во форму : Форма/Элемент Управления/ Табличное степь Назвать —  ТабличноеПолеПараметры ,

привнести флюгарка «Вставить командную панель» . Ок. двойным щелчком мыши по мнению созданному элементу вызываем свойства да на строку показатели задаем —  ОтчетОбъект.КомпоновщикНастроек.Настройки.Параметры данных.

Спасибо Хрусталевой Е.Ю.


У документа поглощать табличная делянка вещи со колонками  наименование, стоимость равно пр.

Нужно выискать строки из цено=0.

Создаем структуру

Отбор=Новый Структура(«Цена», 0);

создаем переменную равно помещаем тама документация : Метод НайтиСтроки(Отбор)

МассивСтрок=Товары.НайтиСтроки(Отбор);

Дольше перебираем строки

Пологаю что-нибудь  этим приемо  Товары.НайтиСтроки(Отбор) создаем сосредоточение да помещаем тама информация в соответствии с отбору.

Да ещё когда во спрвку поезно взглянуть средство таблицы значений «НайтиСтроки» — возвращает массив.
Для каждого Строка Из МассивСтрок Цикл
Товары.Удалить(Строка);
КонецЦикла;


Элементы.Дата.Доступность=Ложь;


Метод    —  ЗначениеВРеквезтФормы(ТаблицаДанных, «Таблица»)

ТаблицаДанных — ТаблицаДанных созданая во Модуле Формы ТаблицаЗначений

«Таблица» — Реквизит сложение из типом данных «ТаблицаЗначений» равным образом колонкой

Пример изо Насипов да Фарит:

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

//Создается список значений, добавляется колонка да заполняются данные.

ТаблицаДанных=Новый ТаблицаЗначений;

ТаблицаДанных.Колонки.Добавить(«Месяц»);

Строка=ТаблицаДанных.Добавить();

Строка.Месяц=«Январь»;

Строка=ТаблицаДанных.Добавить();

Строка.Месяц=«Февраль»;

Строка=ТаблицаДанных.Добавить();

Строка.Месяц=«Март»;

//Преобразование таблицы значений во имущество формы.

ЗначениеВРеквизитФормы(ТаблицаДанных, «Таблица»);

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

Для обратного действа:

РеквизитФормыВЗначение(«Таблица»)   Таблица — не без; колонкой «Месяц» во примере.


На закладке «настройки» выбираем последнею группировку отчета, нажимаем правую клавишу мыши равным образом устанавливаем ИМЯ. На закладке «макет» добавляем «Макет заголовка группировки», Выбираем наименование группировки которое создали. Тип макета — подвал. В поляна сторона нажимаем многоточечность равным образом мышкой определяем область. Нажимаем «Ввод». В области пишем текст. При выводе СКД хорэ печататься на конце макета, речь сообразно настройки заголовка.


&НаСервереБезКонтекста

Процедура УдалитьНаСервере(Наименование)

Запрос=Новый Запрос;
Запрос.Текст=
«ВЫБРАТЬ
| Номенклатура.Наименование КАК Наименован,
| Номенклатура.Ссылка равно как Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование=&Наименование»;

Запрос.УстановитьПараметр(«Наименование», Наименование);

Результат=Запрос.Выполнить();

ВыборкаДетальныеЗаписи=Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

ссылкаНаОбъект=ВыборкаДетальныеЗаписи.Ссылка;
СотрудникОбъект=ссылкаНаОбъект.ПолучитьОбъект();
СотрудникОбъект.Удалить();
КонецЦикла;

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

&НаКлиенте

Процедура Удалить(Команда)
УдалитьНаСервере(Наименование);

КонецПроцедуры
Файл


Пример 0. Редактирование программно существующего элемента справочника в примере справочника «Сотрудники».

Создается обработка РаботаСоСправочникамиПример2 равным образом фигура обработки. Для редактирования элемента надобно обрести ссылку для элемент.

На форму добавляются атрибут Сотрудник из типом данных СправочникСсылка.Сотрудники, имущество Пол не без; типом данных ПеречислениеСсылка.Пол равным образом повеление Поменять.

Для команды определяется переработчик поступки Поменять(Команда). В обработчике осуществляется требование серверной процедуры ПоменятьПолНаСервере  вместе с передачей параметров Сотрудник равным образом Пол:

&НаКлиенте

Процедура Поменять(Команда)

ПоменятьПолНаСервере(Сотрудник, Пол);

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

Процедура ПоменятьПолНаСервере:

&НаСервереБезКонтекста

Процедура ПоменятьПолНаСервере(Сотрудник, Пол)

//Получение объекта по мнению ссылке:

СотрудникОбъект=Сотрудник.ПолучитьОбъект();

//Изменение реквизита:

СотрудникОбъект.Пол=Пол;

//Запись объекта:

СотрудникОбъект.Записать();

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

Установка пометки удаления элемента справочника равным образом снятие элемента справочника.

На форму добавляется экипаж ПометитьНаУдаление  и переработчик этой команды, во котором осуществляется извещение процедуры ПометитьНаУдалениеНаСервере из передачей параметра Сотрудник:

&НаКлиенте

Процедура ПометитьНаУдаление(Команда)

ПометитьНаУдалениеНаСервере(Сотрудник);

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

Из курса Насипов да Фарит

«Вообще-то сие отчество да семья одного да того а человека…»

Ни ради ась? бы безграмотный подумал. У меня засада от что до считыванием , век додумываю., за того дай тебе легко кончить прежде конца, а дальше контия тем паче невыгодный читаю.


Создается обработка РаботаСоСправочникамиПример1 на подсистеме Настройки равно платье обработки. На форме обработки создается имущество ФИО равно отряд СоздатьЭлемент. Для команды определяется шлифовальщик поступки СоздатьЭлемент(Команда)  с директивой компиляции &НаКлиенте.  В обработчике осуществляется картель серверного метода СоздатьЭлементНаСервере(), этак в качестве кого во тонком клиенте безвыгодный приемлемо просьба для свойству глобального контекста  Справочники. Имя реквизита ФИО передается во серверный методика СоздатьЭлементНаСервере() во качестве параметра:

СоздатьЭлементНаСервере(ФИО);

В процедуре СоздатьЭлементНаСервере() создается требование ко свойству глобального контекста Справочники, выбирается классификатор Сотрудники да вызывается средство СоздатьЭлемент():

СотрудникОбъект=Справочники.Сотрудники.СоздатьЭлемент();

Заполняется озаглавливание элемента:

СотрудникОбъект.Наименование=ФИО;

Выполняется протокол данных:

СотрудникОбъект.Записать();

При программной дневник малограмотный выполняются проверки заполнения реквизитов элементов.

Для проверки заполнения реквизитов используется путь ПроверитьЗаполнение():

Если СотрудникОбъект.ПроверитьЗаполнение() Тогда

СотрудникОбъект.Записать();

Иначе

Сообщение=Новый СообщениеПользователю;

Сообщение.Текст=Не весь реквизиты элемента справочника заполнены верно;

Сообщение.Сообщить();

КонецЕсли;

Для заполнения оклада сотрудника нате форме создается имущество Оклад равным образом передается во серверный методика СоздатьЭлементНаСервере() во качестве параметра:

СоздатьЭлементНаСервере(ФИО,Оклад);

Заполнение оклада сотрудника:

СотрудникОбъект.Оклад=Оклад;

Пример 0. Создание группы во справочнике на справочнике «Номенклатура».

Для реализации задачи создается имущество склад ИмяГруппы равно повеление СоздатьГруппу.

Создание группы осуществляется во серверном методе СоздатьГруппуНаСервере(ИмяГруппы), идеже наименование группы передается на качестве параметра. Создание группы, загромождение равным образом заметка группы:

ГруппаОбъект=Справочники.Номенклатура.СоздатьГруппу();

ГруппаОбъект.Наименование=НаименованиеГруппы;

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

Для создания группы в середке существующей группы используется характерная черта Родитель от типом данных СправочникСсылка. Создается имущество комплекция РодительскаяГруппа со типом данных СправочникСсылка.Номенклатура равным образом передается во процедуру СоздатьГруппуНаСервере(ИмяГруппы, РодительскаяГруппа) во качестве параметра.

Создание равно вставка родительской группы:

ГруппаОбъект.Родитель=Родитель;

Полный формулировка модуля формы:

&НаКлиенте

Процедура СоздатьЭлемент(Команда)

СоздатьЭлементНаСервере(ФИО, Оклад);

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

&НаСервереБезКонтекста

Процедура СоздатьЭлементНаСервере(ФИО, Оклад)

СотрудникОбъект=Справочники.Сотрудники.СоздатьЭлемент();

СотрудникОбъект.Наименование=ФИО;

СотрудникОбъект.Оклад=Оклад;

Если СотрудникОбъект.ПроверитьЗаполнение() Тогда

СотрудникОбъект.Записать();

Иначе

Сообщение=Новый СообщениеПользователю;

Сообщение.Текст=Не постоянно реквизиты элемента справочника заполнены верно;

Сообщение.Сообщить();

КонецЕсли;

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

 

 

&НаКлиенте

Процедура СоздатьГруппу(Команда)

СоздатьГруппуНаСервере(ИмяГруппы, РодительскаяГруппа);

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

 

&НаСервереБезКонтекста

Процедура СоздатьГруппуНаСервере(НаименованиеГруппы, Родитель)

ГруппаОбъект=Справочники.Номенклатура.СоздатьГруппу();

ГруппаОбъект.Наименование=НаименованиеГруппы;

ГруппаОбъект.Родитель=Родитель;

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

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


По умолчанию величина передаются по части ссылке.

Процедура ПолучитьНомер(Команда)

А=2;
ПолучитьПараметр(А) ;
Сообщение=Новый СообщениеПользователю;
Сообщение.Текст=«новое значение»+А;
Сообщение.Сообщить();
КонецПроцедуры

Функция ПолучитьПараметр( Ф)

Сообщение=Новый СообщениеПользователю;
Сообщение.Текст=«Значение»+Ф;
Сообщение.Сообщить();
ф=ф+ф;
реверс (ф);
КонецФункции // ПолучитьПараметр()

После воплощение стих вес А удвоится потому-что да мы из тобой напрямую действуем со значением переменной находящейся во ссылке.

Но неравно на параметрах функции обоссать  перед параметром Знач

Функция ПолучитьПараметр( Знач Ф )

То тем самым автор будем прямо-таки посылать спица в колеснице переменной, только не без; самой переменной никаких действий делать никак не будем.

И по прошествии выполнения функции значении А останется прежним.


Есть выкройка приходного документа, из табличной частью, с реквизитами: номенклатура, цена, количество, сумма.

Объявляем переменную:

ТекущиеДанные=Элементы.Товары.ТекущиеДанные;

И после того чрез точку обращаемся ко реквизитам.  Например для того расчета суммы:
ТекущиеДанные.Сумма=ТекущиеДанные.Количество*ТекущиеДанные.Цена;