Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Импорт сотрудников в БП3 через конвертацию данных

Добрый день.
Задача создать правила конвертации для импорта сотрудников из внешней системы. Т.е. во внешней системе формируется -файл с шаблоном необходимых правил с вставленными данными в нужные реквизиты из этой системы. В справочнике сотрудники нет реквизитов организация, должность, подразделение. Подскажите пожалуйста, как связать справочники сотрудники, организации, должности и подразделения. Конвертация 2.1, БП 3.
Ответ:
Проблема в том, что в справочнике сотрудники нет реквизитов организация, должность, подразделение. Они на форме как поля с типами данных ссылка.справочник... Как сделать, чтобы выгружался сотрудник именно со своей должностью, подразделением ?
Вопрос: Экспорт данных из 1С в шаблон документа Excel, Word

Итак скажем необходимо привести данные из 1С, к примеру реквизиты документа "Приходная накладная" вместе с табличной частью, в формат документа для печати или отправки электронным письмом.
1. Куда проще экспортировать в Word или Exsel?
2. Как и где хранить шаблоны документов?
3. Ну и самое главное. Поможете с примером кода по экспорту?
Ответ:
Сообщение от Swamp Doctor
в формат документа для печати или отправки электронным письмом.
проще прямо в 1С

Яндекс тебе подскажет про Печатные Формы
Вопрос: Сохранение данных внешней печатной формы не изменяя конфигурацию

Добрый день уважаемые форумчане !!!
Прошу помощи у гуру.
Есть какая либо внешняя обработка / печатная форма для одного из документов, но для этого документа должны быть привязаны еще несколько реквизитов (которые конечно не привязаны в типовой конфигурации) для того чтобы на печатной форме отображалось как можно больше полей.
подскажите какие есть способы чтобы сохранить эти данные ?
не меняя конфигурацию конечно ...
И какой из способов наиболее рационален ?

Заранее огромное спасибо !!!
Ответ: wladimir_ui Ат души душевной !!! Уважение !!!
Самым первым вылезает доп значение ... его и не посмотрел ...

зы Дровалет - Метла и Сарай - Это Уровень
Вопрос: Програмное обновление данных в СчетНаОплатуПоставщика/СчетНаОплатуПокупателю

Здравствуйте.
Есть проблема.
Написано регламентное задание для 1С:Предприятие 8.3 (8.3.10.2299)
Бухгалтерия предприятия, редакция 3.0 (3.0.51.20)
Оно делает запрос во внешнюю систему, на основе этих данных создаёт или обновляет данные в счетах 1С.
При создании новых счетов проблем нет, всё создаётся.
Когда нужно изменить что либо в существующем счёте, вываливается ошибка.

{ОбщийМодуль..Модуль()}: Поле объекта недоступно для записи (ДоговорКонтрагента)

Либо аналогичные, по другим полям.

Какие есть пути решения этой проблемы?
Ответ: Искал документ так
InvoicePtr = Документы.СчетНаОплатуПокупателю.НайтиПоНомеру(RS.Fields("NUM_ACCOUNT").Value,RS.Fields("DATE_ACCOUNT").Value);
Добавил в конце по вашему совету .ПолучитьОбъект(), всё заработало.
Спасибо!
Вопрос: Какую модель базы данных выбрать

Привет всем, во внешней системе, реализовано решение, которое необходимо в какой то мере повторить. Данные там хранятся не как в 1с, вид 2 на скрине, а как на виде 1.   
для своего пользователя  они выводят данные как в 1с,

вопрос, стоит ли организовывать такую структуру в 1с? какие риски при такой организации данных могут возникнуть?
Ответ: () Я просто не программировал на других языках, неужели в не в 1с таблицы выглядят как то по-другому?
Вопрос: СКД. Для чего нужны наборы данных?

Какое преимущество имеет использование нескольких наборов данных в СКД? Понятно, что иногда бывает нужно соединить несколько источников данных - например запрос с данными внешнего источника. Но для чего делают несколько источников - запросов и потом объединяют их средствами СКД, что это дает в сравнении с обычным соединением в запросе?
Ответ: () классический пример
Вопрос: Как обновить значение ячеек в интерфейсе 1C после изм. данных внешней процедурой MSSQL

это скорее вопрос по интерфейсу 1С,
но вдруг кто-нибудь знает, за какую верёвочку дёрнуть?

Модератор: Тема перенесена из форума "Microsoft SQL Server".
Ответ:
volodin661
Александр Пузаков
volodin661, а вы в курсе, что изменение данных ИБ 1С посредством СУБД нарушает лицензионное соглашение?

нет.
но лично мне ( внимание, сейчас я выражусь изящно) насрать.

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

Делаю внешнюю обработку для заполнения таб части.
Вид - ЗаполнениеОбъекта
ВызовКлиентскогоМетода

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

Есть вообще вариант запустить обработку, чтобы запись не требовалась?
Ответ: Как я делаю:

1. Минимальное универсальное расширение, которое исправляет недоработку БСП.
Надо перекрыть &Вместо метод ОМ.ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьНазначаемуюКомандуНаКлиенте
Вместо строки <Если Объект.Ссылка.Пустая() Или Форма.Модифицированность Тогда>
Написать <Если ВРег(ВыполняемаяКоманда.Модификатор) <> "БЕЗЗАПИСИФОРМЫ" И (Объект.Ссылка.Пустая() Или Форма.Модифицированность) Тогда>

2. При создании обработок заполнения объектов использовать модификатор команды "БезЗаписиФормы"
Таким образом будем объяснять системе, что это клиентская команда, в которой не надо записывать объект.

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

Добрый день!
Подключил внешнюю печатную форму и теперь при печати в РТиУ через стандартную обработку печати комплекта документов возникает ошибка "Метод объекта не обнаружен (Печать)". Когда делал ВПФ, то расположил функцию Печать() в модуле формы.
Код:
Функция Печать(ИдентификаторКоманды,ОбъектыНазначения) Экспорт
Все корректно отрабатывает, кроме этого.
Ответ:
Добрый день!

Переработал обработку и расположил Печать() в модуле объекта, но все-равно возникает ошибка:

Вот что в модуле объекта:
Код:
Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг"); //Указываем документ к которому делаем внешнюю печ. форму

    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ЗаполнениеОбъекта,
                                                           //ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
   
   
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Бланк гарантии"); //имя под которым обработка
                                                            // будет зарегестрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.0");   
    ПараметрыРегистрации.Вставить("Информация", "Дополнительная печатная форма к документу РТУ");
   
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
   

    ДобавитьКоманду(ТаблицаКоманд, "Бланк гарантии", "БланкГарантии", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
   
    Возврат ПараметрыРегистрации;
КонецФункции

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

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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

  НоваяКоманда = ТаблицаКоманд.Добавить();
  НоваяКоманда.Представление = Представление; 
  НоваяКоманда.Идентификатор = Идентификатор;
  НоваяКоманда.Использование = Использование;
  НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  НоваяКоманда.Модификатор = Модификатор;

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

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
   
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "БланкГарантии", "Бланк гарантии)", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
   
КонецПроцедуры // Печать()


Функция ВернутьМакет()
   
    Макет = ЭтотОбъект.ПолучитьМакет("ГарантийныйТалон");
   
    Возврат Макет;
   
КонецФункции

Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати) Экспорт
    ТабДок = Новый ТабличныйДокумент;
   
    ТекстЗапроса =
    "ВЫБРАТЬ
    |    ЕСТЬNULL(МЛ_ПринадлежностиАвтомобилей.Комплектация, """") КАК Применимость,
    |    ВложенныйЗапрос.Номенклатура.Наименование КАК Номенклатура,
    |    ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
    |    ВложенныйЗапрос.НомерСтроки КАК НомерСтроки
    |ИЗ
    |    (ВЫБРАТЬ
    |        РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |        РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
    |        РеализацияТоваровУслугТовары.Характеристика КАК Характеристика,
    |        РеализацияТоваровУслугТовары.Склад КАК Склад,
    |        МИНИМУМ(РеализацияТоваровУслугТовары.НомерСтроки) КАК НомерСтроки
    |    ИЗ
    |        Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |    ГДЕ
    |        РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)
    |   
    |    СГРУППИРОВАТЬ ПО
    |        РеализацияТоваровУслугТовары.Ссылка,
    |        РеализацияТоваровУслугТовары.Номенклатура,
    |        РеализацияТоваровУслугТовары.Характеристика,
    |        РеализацияТоваровУслугТовары.Склад) КАК ВложенныйЗапрос
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МЛ_ПринадлежностиАвтомобилей КАК МЛ_ПринадлежностиАвтомобилей
    |        ПО ВложенныйЗапрос.Номенклатура.АртикулЧ = МЛ_ПринадлежностиАвтомобилей.АртикулЧ
    |
    |УПОРЯДОЧИТЬ ПО
    |    ВложенныйЗапрос.Ссылка,
    |    НомерСтроки
    |ИТОГИ
    |    МАКСИМУМ(Артикул)
    |ПО
    |    Номенклатура";
    Запрос = Новый Запрос;
    Запрос.Текст = ТекстЗапроса;
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
   
    Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   
    Выборка.Следующий();
    ВыборкаДетальныеЗаписи = Выборка.Выбрать();
    Сч = 1;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Если Сч>1 Тогда
            Если Ложь Тогда
                Строка = " ";
            КонецЕсли;
            Строка.Применимость = Строка.Применимость + "; " + Символы.ПС + Строка(ВыборкаДетальныеЗаписи.Применимость);
        Иначе
            ТЗ = Новый ТаблицаЗначений;
            ТЗ.Колонки.Добавить("Применимость");
            ТЗ.Колонки.Добавить("Номенклатура");
            Строка = ТЗ.Добавить();
            Строка.Применимость = Строка(ВыборкаДетальныеЗаписи.Применимость);
            Строка.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
        КонецЕсли;
        Сч = Сч+1;
    КонецЦикла;
   
    Макет = ВернутьМакет();   
    Шапка = Макет.ПолучитьОбласть("Шапка");
    Шапка.Параметры.Заполнить(ТЗ[0]);
   
    //Шапка.Параметры.СерийныйНомер = "";
    Шапка.Параметры.ДатаПроизводства = НачалоДня(ТекущаяДата())-86400*3;
    Шапка.Параметры.Дата = ТекущаяДата();
    ТабДок.Вывести(Шапка);
   
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;

    Возврат ТабДок;
КонецФункции
--- Объединение сообщений, 9 янв 2017 ---
Спасибо, разобрался. Нужно было указать "ВызовСерверногоМетода".
Вопрос: v7: Разработка собственного учета рабочего времени для экспорта в ЗУП

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

Новая версия «самописки» еще не закончена, но некоторые скрины можно показать с целью контроля правильности выбранной концепции учета.

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

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

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

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

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

Первичный расчетный журнал можно будет экспортировать в текстовый формат, который подхватит 64-битный расчетный бинарный модуль, скомпилированный в MinGW с поддержкой SQLite. Он обработает данные в базе данных, созданной в памяти, и выгрузит вторичный расчетный журнал в текстовый формат, который заберет назад (все на автомате) «семерка». Промежуточный обмен данными может быть осуществлен по DDE-каналу, поскольку 1С77 является DDE-сервером (этот вариант является рабочим в первой версии описываемой программы). Хотя ничто не мешает использовать и COM-соединение.

Кстати, из всего этого следует вывод, что весь учет в заработной плате должен вестись в рабочих часах исключительно! Рабочие дни / смены должны использоваться только для информации. Оклад по дням в ЗУПах это лишь способ переложить ответственность за расчет на плечи пользователей. За такие игры разработчиков надо бить по рукам.

В принципе, если ЗУПовский регистр расчетов и другие используемые регистры окажутся способными воспринять данные из моих расчетных журналов, то их можно будет туда перегонять и регламентные отчеты строить уже в ЗУПе. Но это уже будет актуально для товарной версии «самописки» :) .
Ответ: () > автоматизировали табель? ну и хорошо, задача решена.

Как раз эта задача еще не решена. Так же как и вторая версия еще не закончена.

> За две темы Вы раз 100 ушли от любой конкретики по ЗИК ЗУП,

Какие две темы? Одна тут, а МРОТ это была не моя тема, я там выступал только в комментариях, как и вы здесь. ЗиК я не особо затрагивал, разве что вскользь упоминал, но он не был серьезной темой для меня. По ЗУП я приводил конкретные примеры, на которых был затык. Например, невозможность безболезненно разделить вид учета «оплата выходных и праздничных дней» на 8(!) подвидов (дополнительные критерии: по графику / не по графику и оплата / доплата) и объединить все вечерние в один вид и все ночные в один вид. В расчете средних, чтобы снять блокировки на вхождаемость видов, нужно было лезть в код и там менять. Нельзя было совместить пересекающиеся графики (индивидуальные не предлагать) и все такое прочее. Куда уж конкретней? Были и нюансы, важные для нас, связанные с проблемой отмены округления НДФЛ до рубля. А то, что нужных отчетов в ЗУПе раз, два и обчелся (не считая управленческих и регламентированных, которые для нас не актуальны) я тоже говорил. Так что, о каком уходе «от любой конкретики»  вы говорите, я совершенно не понимаю.

> и раз 100 обругали,

Разве? Я полагал это дружеской критикой. Жестковатая программа, да, но не самая худшая из тех которые я видел.

> уходя в бизнес процессы у знакомых.

Я бы на этом вообще не заострял внимание, просто пример к слову не более.

> При том что не смогли посмотреть, как в табеле обозначить явки и отпуска,

Да знаю я этот список «видов рабочего времени». Отпуска: ОТ, УД, У, УД, Р, ОЖ, ДО, ОЗ, ДБ (мем, как у Лаврова :) ), аналогично для других видов. Только, ведение их в ЗУПе, совместно с продолжительностью в часах, нарушает первый принцип нормализации в БД (атомарность данных). И проблем моих это не решает, только и всего.

> приплели какие то технологии, завели внешнюю базенку

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

> Поподробнее уже не интересно,

Ну неинтересно, не пишите, у нас демократия.

> вполне вероятно, что Вы длл на делфи устраиваете

Делфи не использую, об этом уже писал. Предпочитаю С / С++. Но в первой версии он еще нигде не применяется, только Visual FoxPro, как внешнее приложение. Во второй вместо VFP будет С / С++, совместно с кодом SQLite, скомпилированный MinGW-64. А там имена полей таблиц и самих таблиц будут на русском языке, что заранее радует.

"перепроведение" на справочниках непосредственным удалением

Проведение у меня это просто запись / перезапись в подчиненные справочники. Естественно, что отмена проведения, пометит свои записи на удаление. Какие вы видите в этом проблемы? Хотя могу ограничится только внешним журналом расчетов на SQLite. Здесь еще возможны варианты. Процесс ведь не закончен.

В общем, я откровенно говоря, удивлен вашим наездом.