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. Оптимальная гармоника выполнения данной регламентной процедуры должна быть на подходе во соответствии от нагрузкой сверху систему равным образом эффектом, получаемым через дефрагментации. Рекомендуется исполнять дефрагментацию индексов отнюдь не реже одного раза во неделю.
Возможно осуществление дефрагментации ради одной alias нескольких таблиц, а безграмотный про всех таблиц базы данных.

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

Реиндексация таблиц охватывает полное перестроение индексов таблиц базы данных, что-нибудь приводит ко существенной оптимизации их работы. Рекомендуется совершать регулярную переиндексацию таблиц базы данных. Для реиндексации всех таблиц базы данных надо провести в жизнь нижеследующий 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) ОбработкаЗаполнения (Ввод необусловленный alias установление для основании)

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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


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


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

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

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

Пример изо Насипов равным образом Фарит:

&НаСервере

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

&НаКлиенте

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

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


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

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

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

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

&НаКлиенте

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте

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

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

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

Из курса Насипов равным образом Фарит

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

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


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

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

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

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

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

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

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

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

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

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

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

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

Иначе

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

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

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

КонецЕсли;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте

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

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

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

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

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

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

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

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

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

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

Иначе

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

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

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

КонецЕсли;

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

 

 

&НаКлиенте

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

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

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

 

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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