Разработка настольного приложения для автоматизации учета на 1С: Предприятие 8.3 (Версия: 01.12)

16.11.22

Архитектура

Подробно описываю разработку своего приложения по автоматизации небольшой фирмы на платформе 1С: Предприятие 8.3. Версия: 01.12.

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

Разработка велась в программе 1С: Предприятие версии 8.3.

 

Этап 1.

Фирма работает с товарами, которые состоят из материалов и фурнитуры. Их можно вынести и в отдельные справочники, однако, намного удобнее объединить их в справочник "Номенклатура", а уже внутри него указывать необходимый тип.
В номенклатуре я прописал следующие поля:

  • Единица измерения (берутся из специального перечисления)
  • Длина
  • Количество
  • Тип номенклатуры (тоже перечисление)
  • Тип (просто строка, относится к выбранному значению из поля выше)
  • Цена
  • Качество (не обязательное поле, но реализовал я его также со ссылкой на необходимое перечисление)

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

 

Этап 2.

Операции поступления товаров от поставщиков необходимо было заносить в отдельный документ. Его я назвал "Поступление товаров". Были разработаны основные поля:

  • Поставщик (данные берутся из справочника)
  • Договор
  • Сумма документа (подробнее об этом немного позже)

 

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

  • Наименование товара (ссылка на справочник номенклатуры)
  • Артикул
  • Единица измерения (данное поле будет встречаться много раз, поэтому не буду повторяться что данные для него берутся из отдельного справочника)
  • Количество товара
  • Цена
  • Сумма

 

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

 


Фото 1 - Поступление товаров (форма документа)

 

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

//Рассчет суммы в табличной части при изменении количества
&НаКлиенте
Процедура СписокТоваровКоличествоПриИзменении(Элемент)
	МодульСуммы.РасчетСуммыТекущейСтроки(Элементы.СписокТоваров.ТекущиеДанные);
КонецПроцедуры    

//Рассчет суммы в табличной части при изменении цены
&НаКлиенте
Процедура СписокТоваровЦенаПриИзменении(Элемент)
	МодульСуммы.РасчетСуммыТекущейСтроки(Элементы.СписокТоваров.ТекущиеДанные);
КонецПроцедуры       

//Рассчет суммы документа
&НаКлиенте
Процедура СписокТоваровПриИзменении(Элемент)
	МодульСуммы.РасчетСуммыДокумента(Объект.СуммаДокумента, Объект.СписокТоваров);
КонецПроцедуры

Особо сложного здесь ничего нет, процедуры я подписал комментариями. Как можно заметить, я выбирал на форме необходимый мне пункт таблицы и её саму, и в блоке свойств я создавал события при изменении (на клиенте).

Но! Как вы могли заметить, вычисления выполняются благодаря модулю суммы, который я заранее прописал в общих модулях ->

МодульСуммы:

//Рассчет суммы в текущей строке документа
&НаКлиенте
Процедура РасчетСуммыТекущейСтроки (ТекущаяСтрока) Экспорт 
	ТекущаяСтрока.Сумма=ТекущаяСтрока.Количество * ТекущаяСтрока.Цена;
КонецПроцедуры    

//Рассчет суммы всего документа
&НаКлиенте  
Процедура РасчетСуммыДокумента (СуммаДокумента, Список) Экспорт
	СуммаДокумента=Список.Итог("Сумма");
КонецПроцедуры

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

Также я прописал ещё один модуль, предназначенный для работы с документами, назвав его РаботаСДокументами:

//Рассчет суммы строки ТЧ
Процедура РассчитатьСумму(СтрокаТабличнойЧасти) Экспорт
	СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;
КонецПроцедуры 

Работает он по похожему образу как и предыдущий модуль, он ещё сыграет свою роль.

По итогу, вот такой получилась наша форма поступления товаров:



Фото 2 - Поступление товаров - главная форма

 


Фото 3 - Страница отдельного поступления - форма документа

 

Этап 3.

Для реализации возможности регистрации заказов клиентов, был создан ещё один документ - "Заказ".
У него есть следующие реквизиты:

  • Наименование заказа
  • Заказчик (ссылочный тип)
  • Сумма по документу
  • Статус заказа (ссылка не перечисление статусов)

Также как и у предыдущего документа, имеется табличная часть, в которую входят выбранные для заказа изделия (ТЧ СписокИзделий), вот её реквизиты:

  • Изделие (предварительно создан справочник)
  • Описание изделия
  • Ширина
  • Длина
  • Высота
  • Количество
  • Цена
  • Сумма

Была создана форма документа, в модуле которой лежит уже знакомый с прошлого документа код:

//Вычисление суммы поля при изменении количества
&НаКлиенте
Процедура СписокИзделийКоличествоПриИзменении(Элемент) 
	МодульСуммы.РасчетСуммыТекущейСтроки(Элементы.СписокИзделий.ТекущиеДанные);  
КонецПроцедуры   

//Вычисление суммы поля при изменении цены
&НаКлиенте
Процедура СписокИзделийЦенаПриИзменении(Элемент)
	МодульСуммы.РасчетСуммыТекущейСтроки(Элементы.СписокИзделий.ТекущиеДанные);
КонецПроцедуры 

//Рассчет суммы всего документа
&НаКлиенте
Процедура СписокИзделийПриИзменении(Элемент)
	МодульСуммы.РасчетСуммыДокумента(Объект.СуммаПоДокументу, Объект.СписокИзделий);	
КонецПроцедуры

 

Для этого документа также есть команда печать, которая формирует печатный отчёт документа.

Создаётся она очень просто: действия -> конструкторы -> конструктор печати.

Если всё ещё непонятно, то прикрепляю инструкцию:

 


Фото 4 - Создание конструктора печати

 

Дальше предлагают выбрать реквизиты для шапки (я выбрал все), реквизиты для табличной части (также все) и для подвала (можно не выбирать). В итоге успешно создаётся команда печати!

Примерно так всё выглядит после создания:



Фото 4 - Результат создания печати

 

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

 

Этап 4.

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

Далее создаётся форма документа, в модуле которой лежит следующий код:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Если Не ЗначениеЗаполнено(Объект.Изделие) И Параметры.Свойство("Изделие") Тогда
		Объект.Изделие=Параметры.Изделие;
	КонецЕсли;
КонецПроцедуры

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

&НаКлиенте
Процедура ОткрытьСпецификацию(Команда)
	текСтрока=Элементы.Список.ТекущиеДанные;
	Если текСтрока<>Неопределено Тогда
		Док=ВернутьСпецификацию(ТекСтрока.Ссылка);
		ПараметрыФормы=Новый Структура("Ключ",Док);
		ПараметрыФормы.Вставить("Изделие",ТекСтрока.Ссылка);
		ОткрытьФорму("Документ.Спецификация.ФормаОбъекта",ПараметрыФормы,ЭтаФорма,УникальныйИдентификатор);
		
	Иначе
		Сообщить("Нужно установить курсор на изделие, по которому нужно открыть спецификацию!");
	КонецЕсли;
КонецПроцедуры

&НаСервереБезКонтекста
Функция ВернутьСпецификацию(Изделие)
	Возврат Документы.Спецификация.НайтиПоРеквизиту("Изделие",Изделие);
КонецФункции

Важно заметить, что процедура ОткрытьСпецификацию должна быть прописана к определённой команде, которую мы создаём - легче показать, чем описать:



Фото 5 - Форма спецификации (Форма Документа)

 

Возвращаемся к справочнику Изделий - здесь необходимо чтобы у изделия можно было добавлять несколько чертежей и результаты замеров. Для этого создаём вторую форму - форму элемента.

 


Фото 6 - Структура формы

 

На той же странице в окне реквизитов добавлены реквизиты: ИмяФайлаДиалог, ПутьКФайлу и РасширениеФайлаИзДиалога:

 


Фото 7 - Реквизиты формы изделий

 

А также созданы команды ЗагрузитьФайл и ОткрытьФайл, прописав к ним необходимые действия из модуля формы:

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

&НаКлиенте
Процедура ОткрытьФайл(Команда)
	//Вызов диалога выбора файла
	Диалог=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	Диалог.МножественныйВыбор=Ложь;
	Если Диалог.Выбрать() Тогда	
		ПутьКФайлу=Диалог.ПолноеИмяФайла;
		//Определение имени файла и расширения из пути файла
		ПозицияПоследнейТочки=СтрНайти(ПутьКФайлу,".",НаправлениеПоиска.СКонца,,1);
	    ПозицияПоследнегоСлеша=СтрНайти(ПутьКФайлу,"\",НаправлениеПоиска.СКонца,,1);	
		РасширениеФайлаИзДиалога=Прав(ПутьКФайлу,СтрДлина(ПутьКФайлу)-ПозицияПоследнейТочки);
		ИмяФайлаДиалог=Сред(ПутьКФайлу,ПозицияПоследнегоСлеша+1,ПозицияПоследнейТочки-ПозицияПоследнегоСлеша-1);
	КонецЕсли;
	Если НЕ ПутьКФайлу="" Тогда	
		 ОткрытьФайлНаСервере();
		 Элементы.ДокументацияЗагрузитьФайл.Доступность=Истина;
	Иначе	
		Сообщить("Файл не выбран!");		
	КонецЕсли;	
КонецПроцедуры 

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

&НаСервере
Процедура ЗагрузитьФайлНаСервере(НомерСтроки)
	 ДокументОбъект=РеквизитФормыВЗначение("Объект");
	 Путь=ПолучитьИмяВременногоФайла(ДокументОбъект.Документация[НомерСтроки-1].РасширениеФайла);
	 Данные=ДокументОбъект.Документация[НомерСтроки-1].Файл.Получить();
	 Данные.Записать(Путь);
	 ЗапуститьПриложение(Путь);
	 ЗначениеВРеквизитФормы(ДокументОбъект,"Объект");
КонецПроцедуры

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

На этом, спецификацию и изделие можно считать заполненными!

 

Этап 5.

Также необходимо было создать документ "Сборка", который будет отражать сборку готовой продукции.

В основных реквизитах прописывается изделие (ссылка на справочник изделий) и количество, а в табличной части Комплектующие указываем реквизиты Наименование, со ссылкой на справочник Номенклатуры, и Количество.

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

В этой форме нам необходимо при проведении контролировать наличие необходимой для сборки номенклатуры.
Сейчас будет тяжёлая инструкция, сосредоточьтесь:

1) Делаем блокировку

  • свойство конфигурации Режим управления блокировкой данных необходимо установить в значение Автоматический и управляемый;

  • свойство Режим управления блокировкой данных объекта метаданных документ необходимо установить в значение Управляемый;

  • у всех регистров, по которым данный документ выполняет движения, следует установить свойство Режим управления блокировкой данных в значение Управляемый;

Обращаем внимание на третий подпункт - первоначально нужно регистр накопления создать. Назвать его можно ОстаткиНоменклатуры. В нём перемещаемся в данные - в измерениях добавляем Номенклатура с ссылкой на справочник, а в ресурсах создаём Количество. В регистраторах указываем галочки на Поступление товаров и Сборку.

Перемещаемся на документ Поступление товаров -> Действия -> Конструкторы -> Конструктор движений. Внутри указываем в пункте табличная часть - СписокТоваров и нижние поля ставим номенклатуру и количество. ОК. Движение создалось!

Теперь реализуем движение в сборке по конструктору движений - ставим отметку на "Расход" и ТЧ выбираем Комплектующие. В двух нижних полях прописываем правильные данные из нашей ТЧ.

В модуле документа сборки, в самое начало процедуры вставим следующий код:
 

R03;БлокировкаДанных = Новый БлокировкаДанных;

// Выбрать пространство блокировок РегистрНакопления.ОстаткиНоменклатуры, т.к. мы собираемся анализировать
// остатки регистра
ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрНакопления.ОстаткиНоменклатуры");

ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;

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

ЭлементБлокировки.ИсточникДанных = ИсточникНоменклатуры; 
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
БлокировкаДанных.Заблокировать();

[Нажмите и перетащите, чтобы переместить]
R03;

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

2) Контроль остатков

В том же модуле документа Сборки (не формы!) после наших прошлых действий пихаем следующий запрос:

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

Естественно, в данном примере данные оптимизированы под мой проект, если будете копировать надо заменить под свои.

По итогу, Документ Сборка: Модуль Объекта содержит в себе следующий код:

Процедура ОбработкаПроведения(Отказ, Режим)  
	БлокировкаДанных = Новый БлокировкаДанных;

	// Выбрать пространство блокировок РегистрНакопления.ОстаткиНоменклатуры, т.к. мы собираемся анализировать
	// остатки регистра
	ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрНакопления.ОстаткиНоменклатуры");

	ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;

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

	ЭлементБлокировки.ИсточникДанных = ИсточникНоменклатуры; 
	ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Наименование");
	БлокировкаДанных.Заблокировать();
	//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

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

	//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ  
	Движения.Записать();
	Запрос=Новый Запрос();
	Запрос.Текст="ВЫБРАТЬ
	|	ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура,
	|	ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток
	|ИЗ
	|	РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки
	|ГДЕ
	|	ОстаткиНоменклатурыОстатки.КоличествоОстаток < 0
	|	И ОстаткиНоменклатурыОстатки.Номенклатура В(&СписокНоменклатура)"; 
	Запрос.УстановитьПараметр("СписокНоменклатура",Комплектующие.ВыгрузитьКолонку("Наименование"));
	Выборка=Запрос.Выполнить().Выбрать();
	СообщениеПользователю="";
	Пока Выборка.Следующий() Цикл
		Отказ=Истина;
		СообщениеПользователю=СообщениеПользователю+"Не хватает "+Выборка.Номенклатура+" в количестве "+Строка(-Выборка.КоличествоОстаток)+Символы.ПС;
	КонецЦикла;       
	Если Отказ Тогда
		Сообщить(Лев(СообщениеПользователю,СтрДлина(СообщениеПользователю)-1));
	КонецЕсли;
КонецПроцедуры

 

Этап 6.

Была поставлена задача разработать Отчёт по остаткам номенклатуры для этого был создан новый отчёт - ОтчётПоНоменклатуре.

Далее "Открыть схему компоновки данных". Она открывается и добавляем набор данных в виде запроса (левый верхний угол) -> Конструктор запроса -> Выбираем таблицу ОстаткиНоменклатурыОстатки -> из неё переносятся поля номенклатура и количествоостаток, также перетаскиваем общий тип номенклатуры -> через плюсик добавляем поле -> функции яз -> функции -> прочие функции -> берём оттуда ТИПЗНАЧЕНИЯ и в скобки круглые перетаскиваем ОстаткиНоменклатурыОстатки.Номенклатура.

Далее переходим в верхнем меню "Объединения/Псевдонимы" -> Поле1 для удобства переименовываем в ВидНоменклатуры. ОК. Формируется запрос.

Переходим в Ресурсы и кликаем дважды по полю количество, чтобы оно перетащилось.

Далее в верхнем меню Настройки нажимаем -> "Открыть конструктор настроек" -> Список -> Выбираем Номенклатура и Количество -> Далее, для группировки данных выбираем качество, которое выбираем из справочника Номенклатуры -> Всё остальное пропускаем и ОК.

Теперь внизу есть вкладка Отбор -> Вид номенклатуры выбираем и Тип номенклатуры -> Для трёх полей включаем пользовательские настройки (они у правого края).

Потом переходим во вкладку "Другие настройки" -> Галочку на "выводить отбор" и выбираем пункт "не выводить".

По отчёту это вся проделанная работа.

Учёт бухгалтерия фирма материалы фурнитура отчёт

См. также

Как мы автоматизировали башню раздачи воды

Кейсы автоматизации Платформа 1С v8.3 Энергетика и ЖКХ Россия Бесплатно (free)

Делимся опытом автоматизации учета башни раздачи воды.

27.12.2023    1533    0    slavik27    4    

14

Управленческие аналитики для 1С:Бухгалтерии – отчеты для принятия верных решений

Отчеты и дашборды Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Бесплатно (free)

Если вы привыкли выгружать бухгалтерские операции в Excel и дополнять их там управленческой информацией, вы сможете значительно сэкономить время, получая нужные управленческие отчеты в бухгалтерской программе сразу, без лишних движений. Представляем решение для самостоятельного внедрения управленческого учета в 1С:Бухгалтерии.

11.12.2023    1743    0    Serg_Tangatarov    2    

15

Архитектурное ревью. Процесс разработки

Архитектура решений Бесплатно (free)

Рассмотрим применение архитектурной проверки задач в процессе разработки.

30.10.2023    4037    0    ivanov660    10    

30

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

Кейсы автоматизации Работа с требованиями Анализ бизнес-процессов Бесплатно (free)

Автоматизировать производственные процессы в 1С:ERP без доработки типовых механизмов очень сложно. А дорабатывать типовые механизмы 1С:ERP не всегда оправданно. Решением может стать технология разработки Рабочих мест, которая позволяет автоматизировать самые сложные участки последовательно – шаг за шагом, процесс за процессом. Расскажем о том, как помочь пользователям вводить большое количество данных, не нарушая порядок ввода и полноту заполнения всех необходимых реквизитов, и как вовлечь сотрудников Заказчика в разработку и тестирование функционала Рабочих мест.

26.10.2023    1989    0    user1754524    15    

15

Опыт оптимизации системы ERP на примере железнодорожного холдинга численностью 10 тыс. человек

Кейсы автоматизации Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

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

29.08.2023    2982    0    ke_almaty    0    

14

5 подходов при доработке конфигурации 1С, чтобы в будущем не было мучительно больно её обновлять

Архитектура Рефакторинг и качество кода Обновление 1С Платформа 1С v8.3 Бесплатно (free)

Нашей компании часто приходится сталкиваться с обновлением конфигураций разной степени переписанности. Какие-то из них обновляются легко, какие-то — не очень. Расскажем о некоторых принципах модификации программы, которые помогут сделать последующий процесс обновления легче. Или тяжелее, если стараться их не соблюдать.

10.08.2023    9832    0    1c-izhtc    37    

22

Внедрение системы технологического контроля (практический кейс)

Кейсы автоматизации Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Управленческий учет Бесплатно (free)

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

22.05.2023    1459    0    Ingraf    0    

15