Ответы пользователя по тегу
  • Веса номенклатурной группы, что это?

    @Dementor
    программист, архитектор, аналитик
    АртемЪ все правильно написал.

    Были идеи что веса имеют схожесть с весами графов, а номенклатурная группа выступает как дерево, но тоже говорят вроде это не так.
    На это нужно отвечать: "а тогда как?". Мы тут можем разных вариантов набросать, но последнее слово остается все равно за тем, кто для вас кривое непонятное ТЗ написал.
    Ответ написан
  • Скачал с официального сайта консоль запросов 1с для версии 8.2 (обычное приложение) и не запускается на моем 1с 8.3 учебная версия (8.3.12.1855)?

    @Dementor
    программист, архитектор, аналитик
    У вас два варианта:

    1) Запустить вашу базу на 8.3 в режиме обычного приложения под толстым клиентом - тогда консоль запросов будет работать.
    2) Скачать с неофициального сайта любую понравившуюся консоль под управляемый интерфейс.
    Ответ написан
    Комментировать
  • Стоит ли переходить в 1с fresh?

    @Dementor
    программист, архитектор, аналитик
    И тут вопрос, а не лучше ли отказаться от своего сервера и перейти во фреш? Какие потенциальные проблемы могут возникнуть на стыке обмена 1сфреш <--> вебсайт?

    До того как ушел с франча, успел застать как взяли клиентов в облако со связкой с Битриксом. Вы просто перекладываете ответственность за работоспособность обмена со своего админа на админов облака.
    Ответ написан
    Комментировать
  • Что не так в коде (1С)?

    @Dementor
    программист, архитектор, аналитик
    Что не правильно?
    1) ПустаяСтрока() - функция для проверки строковой переменной на наличие значимых символов (пробелы, табуляции и прочие разделители игнорируются) - явно не преднозначено для проверки суммы итогового стажа, который будет преобразовываться к строке "0" и функция всегда будет давать результат Ложь. Если итоговый стаж - это не дни итогового стажа, а дата увольнения (с названиями вам еще работать и работать - сами себя путаете), то дата преобразовывается тоже к строковому литералу, который выдаст аналогичную Ложь. Потому содержимое внутри условия никогда не будет выполнено!

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

    3) Что вы там пытались присвоить в двоичном формате непонятно, но явно не в тему.

    4) Предположим, что вы своими ноликами-единичками хотели обнулить дату. Тогда согласно вашей формуле вы к пустой дате добавляете сумму количество секунд от даты приема с количества секунд от даты увольнения - это где-то 4036 год получится.

    UPD. Дополнено после переписки в комментариях
    1) Что должно быть в Итого? По идее количество месяцев! Тип "Строка" тут ни к чему - количество это всегда тип "Число".
    2) На поле табличной части вам нужно добавить обработчик события ПриИзменении с примерно следующим содержимым:
    &НаКлиенте
    Процедура СтажРаботыПриИзменении(Элемент)
    	
    	РедактируемаяСтрока = Элементы.СтажРаботы.ТекущиеДанные;
    	
    	// строку могли удалить и в таблице ничего нет
    	Если РедактируемаяСтрока = Неопределено Тогда
    		Возврат;
    	КонецЕсли; 
    	
    	// обязательно делаем проверку данных!
    	Если РедактируемаяСтрока.ДатаПриема >= РедактируемаяСтрока.ДатаУвольнения Тогда
    		РедактируемаяСтрока.Итог = 0;
    		Возврат;
    	КонецЕсли; 
    	
    	// в зависимости от требуемого значения делаем расчет
    	// еще важен способ округления - к меньшему целому или к большему
    	ОтработаноСекунд = РедактируемаяСтрока.ДатаУвольнения - РедактируемаяСтрока.ДатаПриема;
    	ОтработаноЧасов = ОтработаноСекунд / 60;
    	ОтработаноДней = ОтработаноСекунд / 86400;
    	
    	// если нужно значение месяцев или лет, то используем сдвиги в цикле
    	ОкруглятьКБольшему = Истина;  // 1 день сверху дасть дополнительный 1 месяц или 1 год
    	
    	ОтработаноМесяцев = ?(ОкруглятьКБольшему, 0, -1);
    	СкользящийМесяц = РедактируемаяСтрока.ДатаПриема;
    	Пока СкользящийМесяц < РедактируемаяСтрока.ДатаУвольнения Цикл
    		ОтработаноМесяцев = ОтработаноМесяцев + 1;
    		СкользящийМесяц = ДобавитьМесяц(СкользящийМесяц, 1);
    	КонецЦикла;
    	
    	ОтработаноЛет = ?(ОкруглятьКБольшему, 0, -1);
    	СкользящийГод = РедактируемаяСтрока.ДатаПриема;
    	Пока СкользящийГод < РедактируемаяСтрока.ДатаУвольнения Цикл
    		ОтработаноЛет = ОтработаноЛет + 1;
    		СкользящийГод = ДобавитьМесяц(СкользящийГод, 12);
    	КонецЦикла;
    	
    	// выводим значение на форму
    	РедактируемаяСтрока.Итог = ОтработаноМесяцев;
    	
    КонецПроцедуры


    Но я не умерен в том, что вам нужен реквизит стажа. Возможно было бы достаточно "виртуального реквизита" (добавленого в табличную часть на форме) действительно с типом Строки, куда при открытии и изменении выводить расчетные данные в виде "10 лет, 4 мес, 17 дней".
    Ответ написан
  • Почему съезжает макет?

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

    Или при открытии вордовского документа там содержимое не такое как было в изначальном файле, который сохранили и закинули в макет? У вас после открытия куча изменений документа - пошаговым комментированием кода можете вычислить которая инструкция вызывает "съезжание".

    По поводу двоичного макета. Рекомендую использовать тип активного документа: 1) так вам не нужно будет для изменения каждый раз сохранять и перезаписывать двоичные данные - можете все правки сделать напрямую в конфигураторе; 2) при получении макета сразу получите COM-объект, готовый к заполнению и показу пользователям.
    Ответ написан
  • Как настроит 1с?

    @Dementor
    программист, архитектор, аналитик
    Очевидно, что это особенности вашего учета. Советую почитать документацию к программе.
    Возможно, что на закладке "Оргтехника" предполагается вносить только МБП (лампы, степлеры и пр.), которые в учете не закрепляются за МОЛами. А если у вас МНМА (принтеры, телевизоры и пр.), то посмотрите на другие вкладки.

    P.S. В конце-концов, вас же никто не убьет, если вы все ваши ОС будете вводить на закладке Мебели - главное указывать инвентарники, назначать МОЛов и указывать правильные параметры начисления износа :)
    Ответ написан
    Комментировать
  • Как реализовать автоматическую выгрузку данных из 1С?

    @Dementor
    программист, архитектор, аналитик
    И на файловой базе можно сделать веб-сервис!

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

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

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

    P.S. Вариант с COM-соединением не советую как нестабильный и медленный. Вариант с работой через системные шины (если, конечно, их нет - иначе другая песня) не советую как избыточный и требующий выделенного инженера для обслуживания.
    Ответ написан
    Комментировать
  • Как перенести базу 1C на MySQL, PostgreSQL или что нибудь подобное?

    @Dementor
    программист, архитектор, аналитик
    Вопрос очень старый, но он все еще проиндексирован и при этом не имеет ответа. Поэтому включаем режим "экстрасенса" :)

    есть xml файл на 2млн. строк, по сути база 1C
    Штатно базы 1С не выгружаются в XML. В XML можно выгрузить только конфигурацию или ее элементы. База штатно выгружается в архив *.dt
    Следовательно у автора вопроса есть выгрузка либо с помощью обработки "Обмен данными XML", которая позволяет хоть все данные выгрузить в XML-формате для загрузки в идентичную конфигурацию. Либо выгрузка с помощью конфигурации "Конвертация данных 2.0/1", которая выгружает указанные данные в XML-формате, который описан в этой служебной конфигурации.

    Нужно как-то перенести её в SQL или что-то подобное.
    Вероятно упоминается продукт MsSQL, так как SQL - это язык запросов. Практически все современные СУБД поддерживают импорт данных из файлов XML. Вот дока по MsSQL.

    Подумываю регнуть облачное хранилище для 1С, развернуть это всё дело там и как нибудь экспортировать в нужном формате.
    Если есть доступ к 1С, то проще сразу выгрузить в нужно формате. Второй вариант - грузить сырые данные в новую базу из XML файлов, а далее уже на месте редактировать структуру таблиц и чистить "мусор". Как вариант, можно SELECTами сделать выгрузку только нужной информации в файлы для последующей загрузки в финальной базе.
    Ответ написан
    Комментировать
  • Как получить данные выделенных полей?

    @Dementor
    программист, архитектор, аналитик
    При описании Команды необходимо свойство "Режим использования параметра" установить в "Множественный". Тогда при выполнении данной команды на вход будет передан не параметр с ссылкой на последний выделенный элемент в списке, а массив со всеми выделенными элементами списка. Особенность - порядок ссылок в массиве соответствует порядку выделения соответствующих строк на форме списка.
    Ответ написан
    Комментировать
  • Как вытащить данные из документа?

    @Dementor
    программист, архитектор, аналитик
    Можно использовать процедуры ПриЗаписи на форме и в модуле объекта, но желательно применять подписку на событие ПриЗаписи - в этом варианте можно в едином месте организовать работу с различными документами (иначе нужно изменять типовые формы и далее иметь сложности с обновлениями).

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

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

    @Dementor
    программист, архитектор, аналитик
    1) Фрилансеры бывают разные - негативный опыт в прошлом не отрицает возможности позитивного в будущем. Пока деньги не стали платить, вы же его можете "прособеседовать" и понять "чем он дышит".

    2) Можете обратится в компанию, которая специализируется на решениях 1С (в франч или что-то похожее).

    3) Можете поспрашивать знакомых - "сарафанное радио" иногда приносить хорошие варианты.
    Ответ написан
    Комментировать
  • Нужен тест 1с на производительность. Такие есть?

    @Dementor
    программист, архитектор, аналитик
    Да. Такие тесты есть.
    Начните с официальной документации - Проведение нагрузочного тестирования.
    Далее самый популярный тест Гилева.
    На Инфостарте с десяток вариантов тестирования.
    Да и просто гугление дает множество ссылок на альтернативные источники.
    Ответ написан
    Комментировать
  • Как присвоить переменной значения типа ПланСчетовСсылка.Хозрасчетный?

    @Dementor
    программист, архитектор, аналитик
    Вшитые - это предопределенные?

    Получить с помощью встроенного языка невозможно, так как согласно синтаксис-помощнику:
    ОбъектМетаданных: ПланСчетов (MetadataObject: ChartOfAccounts)
    Предопределенные (Predefined)
    Использование:
    Только чтение.
    Описание:
    Тип: Неопределено.

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

    Получить предопределенные элементы можно с помощью менеджера справочника по имени предопределенного элемента: ПредопределенныйЭлемент = Справочники.Имя_Справочника.Имя_Предопределенного.


    Зато можно все данные вытащить запросом:
    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    |	Хозрасчетный.Ссылка КАК Ссылка
    |ИЗ
    |	ПланСчетов.Хозрасчетный КАК Хозрасчетный
    |ГДЕ
    |	Хозрасчетный.Предопределенный = Истина
    |
    |УПОРЯДОЧИТЬ ПО
    |	Хозрасчетный.Порядок");
    Выборка = Запрос.Выполнить().Выбрать();
    
    СписокСчетов = Новый СписокЗначений;
    СписокСчетов.ТипЗначения = Новый ОписаниеТипов("ПланСчетовСсылка.Хозрасчетный");
    Пока Выборка.Следующий() Цикл
    	СписокСчетов.Добавить(Выборка.Ссылка);
    КонецЦикла;
    Ответ написан
  • Как использовать Rest api в 1С?

    @Dementor
    программист, архитектор, аналитик
    Кто нибудь делал простое приложение в связке с 1с?
    Многие делали.

    Гугл говорит, что rest api у 1с есть, через oData.
    Можно через oData, а можно создавать свои произвольные HTTP-сервисы.

    И забегая на будущее, через тот же rest возможна ли авторизация под учеткой менеджера в 1с на стороннем приложении?
    можно дергать любую процедуру на 1С и если не ловишь 401 ошибку, то значит логин/пароль правильные. Но можно использовать 1С для аутентификации как провайдера OpenID.
    Ответ написан
    1 комментарий
  • Rак добавить значение в перечисление?

    @Dementor
    программист, архитектор, аналитик
    Но после обновления базы у меня выскакивает ошибка о неизвестном значении, которое я добавил. Анализируя код, оказывается что реквизит не имеет новое значение.

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

    @Dementor
    программист, архитектор, аналитик
    Нужно было сразу диплом под андроид делать ;)
    Ответ написан
    7 комментариев
  • Как правильно настроить функцию легкой почты в 1С v8 Документооборот?

    @Dementor
    программист, архитектор, аналитик
    В настоящий момент платформа 1С:Предприятие 8 без лишних телодвижений работает с Gmail.
    Вопрос утратил актуальность.
    Ответ написан
    Комментировать
  • Как установить SSL-сертификат Comodo для веб-конфигурации 1С?

    @Dementor
    программист, архитектор, аналитик
    1) Скорее всего в зависимости от ответа получите разные инструкции по установке.
    2) Да. Получаете пару файлов - открытый сертификат и закрытый ключ к нему (не знаете английский - читайте переводные мануалы на хабре)
    3) Ну-ну. В мая 2017 года, в результате обвала системы Comodo, были утеряны свыше миллиона сертификатов - сылка

    Торговля сертификатами - это торговля воздухом. Нужен сертификат? Берите бесплатный Let's Encrypt, который поддерживается всеми браузерами.
    Ответ написан
    Комментировать
  • 1C 8.2.15 + UnixODBC 2.2.11?

    @Dementor
    программист, архитектор, аналитик
    Пишу для тех, кого сюда занесет поиск.

    Возможно тут был глюк релиза. В свое время я настраивал доступ к базе PostgreSQL с помощью xODBC на Ubuntu 12 LTS. Потратил несколько часов на мануалы и настройку конфига, а потом с легкостью подключился и читал из 1С таблицы внешней базы. В настоящее время технология работает намного стабильнее и позволяет не только читать внешние таблицы, но даже модифицировать их.
    Ответ написан
    Комментировать
  • Как перенести данные их БУХты в 1С?

    @Dementor
    программист, архитектор, аналитик
    По запросу "БУХта 1.1" ответы далеки от бухгалтерского софта, даже если окружить ключевыми словами. В таких случаях правильный алгоритм - изучать таблицы базы и их содержимое (если не хотите следовать совету pofig2217 и связываться с разработчиками).

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