-
-
Save marinat/d735853fa8ffbc3eb253a9caa8f5c01b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| накидай базовую конфигурацию для 1с, код какой-нибудь | |
| 13:52 | |
| Вот базовая структура конфигурации 1С на встроенном языке: | |
| Справочник "Номенклатура" | |
| bsl | |
| // Модуль объекта справочника Номенклатура | |
| Процедура ПередЗаписью(Отказ) | |
| // Проверка заполнения обязательных полей | |
| Если ПустаяСтрока(Наименование) Тогда | |
| Сообщить("Не заполнено наименование номенклатуры!"); | |
| Отказ = Истина; | |
| КонецЕсли; | |
| КонецПроцедуры | |
| Процедура ПриКопировании(ОбъектКопирования) | |
| Код = ""; | |
| КонецПроцедуры | |
| Документ "РеализацияТоваров" | |
| bsl | |
| // Модуль объекта документа РеализацияТоваров | |
| Процедура ОбработкаПроведения(Отказ, РежимПроведения) | |
| // Регистрация движений | |
| Движения.ОстаткиТоваров.Записывать = Истина; | |
| Движения.Продажи.Записывать = Истина; | |
| // Обход табличной части | |
| Для Каждого ТекСтрока Из Товары Цикл | |
| // Движение по остаткам (расход) | |
| Движение = Движения.ОстаткиТоваров.Добавить(); | |
| Движение.ВидДвижения = ВидДвиженияНакопления.Расход; | |
| Движение.Период = Дата; | |
| Движение.Номенклатура = ТекСтрока.Номенклатура; | |
| Движение.Склад = Склад; | |
| Движение.Количество = ТекСтрока.Количество; | |
| // Движение по продажам | |
| Движение = Движения.Продажи.Добавить(); | |
| Движение.Период = Дата; | |
| Движение.Контрагент = Контрагент; | |
| Движение.Номенклатура = ТекСтрока.Номенклатура; | |
| Движение.Количество = ТекСтрока.Количество; | |
| Движение.Сумма = ТекСтрока.Сумма; | |
| КонецЦикла; | |
| // Проведение по регистру бухгалтерии | |
| Движение = Движения.Хозрасчетный.Добавить(); | |
| Движение.Период = Дата; | |
| Движение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01"); | |
| Движение.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01"); | |
| Движение.Сумма = Товары.Итог("Сумма"); | |
| КонецПроцедуры | |
| Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) | |
| Если Не ЗначениеЗаполнено(Контрагент) Тогда | |
| Сообщить("Не указан контрагент!"); | |
| Отказ = Истина; | |
| КонецЕсли; | |
| Если Товары.Количество() = 0 Тогда | |
| Сообщить("Не заполнена табличная часть!"); | |
| Отказ = Истина; | |
| КонецЕсли; | |
| КонецПроцедуры | |
| Обработка "ЗагрузкаДанных" | |
| bsl | |
| // Модуль обработки | |
| Процедура ЗагрузитьИзФайла(ПутьКФайлу) Экспорт | |
| ТекстовыйДокумент = Новый ТекстовыйДокумент; | |
| ТекстовыйДокумент.Прочитать(ПутьКФайлу, КодировкаТекста.UTF8); | |
| Для НомерСтроки = 1 По ТекстовыйДокумент.КоличествоСтрок() Цикл | |
| СтрокаТекста = ТекстовыйДокумент.ПолучитьСтроку(НомерСтроки); | |
| МассивЗначений = СтрРазделить(СтрокаТекста, ";"); | |
| Если МассивЗначений.Количество() < 3 Тогда | |
| Продолжить; | |
| КонецЕсли; | |
| // Создание элемента справочника | |
| НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент(); | |
| НоваяНоменклатура.Наименование = МассивЗначений[0]; | |
| НоваяНоменклатура.Артикул = МассивЗначений[1]; | |
| НоваяНоменклатура.Цена = Число(МассивЗначений[2]); | |
| Попытка | |
| НоваяНоменклатура.Записать(); | |
| Исключение | |
| Сообщить("Ошибка записи: " + ОписаниеОшибки()); | |
| КонецПопытки; | |
| КонецЦикла; | |
| Сообщить("Загрузка завершена"); | |
| КонецПроцедуры | |
| Общий модуль "ОбщегоНазначения" | |
| bsl | |
| // Серверные общие процедуры | |
| Функция ПолучитьТекущуюДату() Экспорт | |
| Возврат ТекущаяДата(); | |
| КонецФункции | |
| Функция ПолучитьОстатокНоменклатуры(Номенклатура, Склад, НаДату = Неопределено) Экспорт | |
| Если НаДату = Неопределено Тогда | |
| НаДату = ТекущаяДата(); | |
| КонецЕсли; | |
| Запрос = Новый Запрос; | |
| Запрос.Текст = | |
| "ВЫБРАТЬ | |
| | ОстаткиТоваровОстатки.КоличествоОстаток КАК Остаток | |
| |ИЗ | |
| | РегистрНакопления.ОстаткиТоваров.Остатки(&МоментВремени, Номенклатура = &Номенклатура И Склад = &Склад) КАК ОстаткиТоваровОстатки"; | |
| Запрос.УстановитьПараметр("МоментВремени", НаДату); | |
| Запрос.УстановитьПараметр("Номенклатура", Номенклатура); | |
| Запрос.УстановитьПараметр("Склад", Склад); | |
| Результат = Запрос.Выполнить(); | |
| Выборка = Результат.Выбрать(); | |
| Если Выборка.Следующий() Тогда | |
| Возврат Выборка.Остаток; | |
| Иначе | |
| Возврат 0; | |
| КонецЕсли; | |
| КонецФункции | |
| Процедура ВывестиСообщениеПользователю(ТекстСообщения, Поле = "") Экспорт | |
| Сообщение = Новый СообщениеПользователю; | |
| Сообщение.Текст = ТекстСообщения; | |
| Если Не ПустаяСтрока(Поле) Тогда | |
| Сообщение.Поле = Поле; | |
| КонецЕсли; | |
| Сообщение.Сообщить(); | |
| КонецПроцедуры | |
| Отчет "ОстаткиТоваров" | |
| bsl | |
| // Модуль отчета | |
| Процедура СформироватьОтчет() Экспорт | |
| ТабличныйДокумент = Новый ТабличныйДокумент; | |
| Макет = ПолучитьМакет("Основной"); | |
| // Шапка | |
| ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); | |
| ОбластьШапка.Параметры.ДатаОтчета = Формат(НаДату, "ДЛФ=DD"); | |
| ТабличныйДокумент.Вывести(ОбластьШапка); | |
| // Запрос остатков | |
| Запрос = Новый Запрос; | |
| Запрос.Текст = | |
| "ВЫБРАТЬ | |
| | ОстаткиТоваровОстатки.Номенклатура КАК Номенклатура, | |
| | ОстаткиТоваровОстатки.Склад КАК Склад, | |
| | ОстаткиТоваровОстатки.КоличествоОстаток КАК Количество | |
| |ИЗ | |
| | РегистрНакопления.ОстаткиТоваров.Остатки(&МоментВремени, ) КАК ОстаткиТоваровОстатки | |
| |ГДЕ | |
| | ОстаткиТоваровОстатки.КоличествоОстаток > 0 | |
| |УПОРЯДОЧИТЬ ПО | |
| | Номенклатура"; | |
| Запрос.УстановитьПараметр("МоментВремени", НаДату); | |
| Результат = Запрос.Выполнить(); | |
| Выборка = Результат.Выбрать(); | |
| ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); | |
| Пока Выборка.Следующий() Цикл | |
| ОбластьСтрока.Параметры.Заполнить(Выборка); | |
| ТабличныйДокумент.Вывести(ОбластьСтрока); | |
| КонецЦикла; | |
| КонецПроцедуры | |
| Это базовая структура. Нужны какие-то конкретные элементы конфигурации или примеры работы с API 1С? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment