Заказы на доработку 1С (сервис удаленной работы)

Хранилище

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

Здравствуйте, гость ( Войти | Зарегистрироваться )



История благодарностей участнику Batchir ::: Спасибо сказали: 1372 раз
Дата поста: В теме: За сообщение: Спасибо сказали:
28.09.20, 9:43 Преобразование значения к типу Дата не может быть выполнено
А ДнейБезЗаказа без заказа это случайно не реквизит с типом Дата?
Или может проблема в ДатаПоследнейРеализации = Выборка.Дата;
В результате запроса нет данных поэтому ДатаПоследнейРеализации это не дата, которую пытаетесь привести к началу дня
odzolalvl,
03.08.20, 13:29 Особенности сортировки в POSTGRE SQL
У нас нет проблем с сортировками на POSTGRE, админы вроде средствами СУБД с сортировками поигрались и всё.
onsamuy,
03.08.20, 11:14 Обработка XML большого объема
Упрощенно код который разбивает файл на куски выглядит так:
                ИмяБезРасширения     = ""; // Чистое имя используется для генерации новых файлов
        ИмяФайла             = ""; // ИмяФайла - закачанный и разархивированный файл XML
        ПутьКНовымФайлам    = ""; // путь куда будут сохраняться новые файлы
        
        Если ЭтоLinuxСервер() ТОгда // отдельная функция которая распознает где крутится сервер 1С
            Слеш = "/";
        Иначе
            Слеш = "\";
        КонецЕсли;
        
        // читаем файл,
        ЧтениеXML = Новый ЧтениеXML;
        ЧтениеXML.ОткрытьФайл(ИмяФайла);
        //Разделяем указанный файл на несколько частей заданного размера, по 100000 записей.
        НомерФайла = 0;
        КоличествоСтрокФайла = 0;
        КоличествоЗаписейДляПрерыванияАлгоритма = 100000;
        
        ЗаписьXML = Неопределено;
        Пока ЧтениеXML.Прочитать() Цикл  //Цикл по структуре
            ИмяЧтения             = ЧтениеXML.Имя;
            ТипУзлаЧтения         = ЧтениеXML.ТипУзла;
            Если ИмяЧтения = "DATA" Тогда
                // этот тег нам не нужен, пропускаем и переходим к записям
                Продолжить;
            КонецЕсли;
            Если ИмяЧтения = "RECORD" И ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                // увеличиваем счетчик обработанной записи для того что бы как только достигнет нужного числа мы запишем файл и начнем новый
                КоличествоСтрокФайла = КоличествоСтрокФайла + 1;
            КонецЕсли;
            
            // инициируем запись нового файла
            Если КоличествоСтрокФайла = 1 И ЗаписьXML = Неопределено Тогда
                НомерФайла = НомерФайла + 1;
                ЗаписьXML = Новый ЗаписьXML;
                ИмяНовогоФайла = ПутьКНовымФайлам + Слеш + ИмяБезРасширения + "_"+ НомерФайла + ".xml";
                ЗаписьXML.ОткрытьФайл(ИмяНовогоФайла, "UTF-8");
                ЗаписьXML.ЗаписатьОбъявлениеXML(); //
                ЗаписьXML.ЗаписатьНачалоЭлемента("DATA"); // начинаем общий тег для хранения списка записей
            КонецЕсли;
            
            // в упращенном файле используются только начало, конец элемента и текст
            Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                ЗаписьXML.ЗаписатьНачалоЭлемента(ИмяЧтения);
            ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
                ЗаписьXML.ЗаписатьКонецЭлемента();
            ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                ЗаписьXML.ЗаписатьТекст(ЧтениеXML.Значение);
            КонецЕсли;
            
            // определяем что в новом файле уже нужное нам количество записей
            Если КоличествоСтрокФайла = КоличествоЗаписейДляПрерыванияАлгоритма И ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента И ИмяЧтения = "RECORD" Тогда
                ЗаписьXML.ЗаписатьКонецЭлемента(); // DATA
                ЗаписьXML.Закрыть();
                // обнуляем значения для того чтоб попало в проверку генерации нового файла
                КоличествоСтрокФайла = 0;
                ЗаписьXML = Неопределено;
            КонецЕсли;
        КонецЦикла;
        
        Если ЗаписьXML <> Неопределено Тогда
            // последний файл с вероятностью 99.99% не записан
            ЗаписьXML.ЗаписатьКонецЭлемента(); // DATA
            ЗаписьXML.Закрыть();
            КоличествоСтрокФайла = 0;
            ЗаписьXML = Неопределено;
        КонецЕсли;


Вырезал куски, у меня просто там куча всего ещё написано для отладки и настройки алгоритмов загрузки.
Но для понимания должно хватить)
Vond,
03.08.20, 10:45 Возможно ли задать переменную в вычисляемые поля в схеме СКД
Вы можете в функцию передать все ваши параметры плюс один дополнительный, например:
Функция ВычислитьСумму(Сумма1, Сумма2, Сумма3, Сумма4, МетодСуммирования) Экспорт
    
    Если МетодСуммирования = 1 Тогда
        Результат = Сумма1 + Сумма2;
    ИначеЕсли МетодСуммирования = 2 Тогда
        Результат = Сумма3 + Сумма4;
    ИначеЕсли МетодСуммирования = 3 Тогда
        Результат = Сумма1 + Сумма2 + Сумма3 + Сумма4;
    Иначе
        Результат = 0;
        // ну и т.д. как душе угодно
    КонецЕсли;
    Возврат Результат;

Конецфункции;


Тогда код в выражениях будет почти всегда один и тот же для облегчения написания, а управлять расчетом будет отдельный параметр
Gigi,
30.07.20, 14:34 Возможно ли задать переменную в вычисляемые поля в схеме СКД
В схеме компоновки данных есть возможность определения вычисляемого поля. Вычисляемые поля представляют собой дополнительные поля схемы, значения которых будут вычисляться по некоторой формуле. Вычисляемые поля можно создавать для того, чтобы использовать поля из различных наборов данных, выполнять операции над полями наборов данных - объект, и для других целей. В настройках компоновки данных вычисляемое поле будет фигурировать под именем, указанным в пути к данным этого поля. Пользователь сможет работать с вычисляемым полем точно так же, как и с полем набора данных.

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

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

Р.S. Информация взята с сайта ИТС.
Как вариант можно написать свою функцию общего модуля и передавать в неё значения в качестве параметров, а она пусть уже считает как Вам хочется.
Gigi,
30.07.20, 10:20 Обработка XML большого объема
Vond,
Фишка в том что есть огромный файл.
Его нужно читать последовательно, а не целиком.
Алгоритм следующий:
1. Читаешь последовательно строки XML с помощью
ЧтениеXML = Новый ЧтениеXML; 
ЧтениеXML.ОткрытьФайл(ИмяФайла);
ЧтениеXML.Прочитать();
// начинаем читать дальше строки файла
        
Пока ЧтениеXML.Прочитать() Цикл  //Цикл по структуре
// .........
КонецЦикла;

В этом случае оперативная память не загружается и в ней находятся только прочитанные на момент чтения строки.
Минус в том что мы не можем контролировать что загружено из файла что нет и если что-то пойдет не так то нам нужно начинать сначала.
2. Поэтому перед тем как выполнять записи в базу я этот большой XML дробил программно на кучу (по 100000 записей, это на усмотрение)
В результате у меня было N количество небольших файлов ожидающих загрузки данных.
3. После того как новые файлы сформированы запускаем уже разбор этих отдельных файлов.
Читаю каждый файл и гружу по нему данные. Если успешно загрузился, то грохаю его, если прошла какая-то ошибка, то пропускаю (перемещаю в отдельный каталог. что бы потом выяснить на чем прошел затык)
И так выполняется пока все они не будут обработаны.
Макс1С,
15.07.20, 10:42 Почему не сходится управленческий баланс?
Обработка для российских конфигураций. Лучше задавать вопросы по ней автору непосредственно на инфостарте. Опыта нет с этой обработкой.
Из описания я понял что вроде как должна работать. С одним НО: без разработчика не обойтись - он должен настроить статьи и алгоритмы получения данных по статьям.
Обработка всего-лишь инструмент, основным источником получения данных являются запросы, которые пишутся под каждую статью.
Когда-то давно для УПП я делал нечто подобное что описано в обработке.
Определялся список статей расходов и доходов и описывались источники получения данных для этих статей (правда у меня могли обходиться без программиста, нужен был просто продвинутый пользователь 1С)

А управленческий баланс дело очень интимное. У каждой организации он считается по разному и почему он не сходится - нужно разбираться непосредственно в базе.

olatim, TohaMonster,
19.05.20, 15:27 Пактум контрагент
alex-rc @ 13.05.20, 15:43 * ,
Самому написать. Все данные есть в открытых источниках на официальных сайтах, например, тут https://data.gov.ua/dataset/1c7f3815-3259-4...f1-64dca07ddc10
alex-rc,
20.11.19, 16:47 Системная функция "ТипЗнч()" - не вопрос, а просто мнение
Давайте без "допустим"? ТипЗнч возвращает тип переданного в неё значения (неожиданно, да?).

ТипЗнч("СправочникСсылка.Справочник1") - это строка, какую информацию Вы хотите получить от параметра типа "Строка"?
Для того что бы получить всё что слева нужно использовать методы, которые предназначены для строк.
ЧтотоСлева = СтрРазделить("СправочникСсылка.Справочник1",".")[0];

или вот, основываясь на посте Vofka,
ПроверяемыйТип = Метаданные.Справочники.ВидыОплатОрганизаций.Реквизиты["ДоговорКонтрагента"].Тип;
ЧтотоСлева = СтрРазделить(Метаданные.НайтиПоТипу(ПроверяемыйТип .Типы()[0]).ПолноеИмя(),".")[0];

(это сарказм если что)


Поэтому, укажите конкретно относительно чего вы хотите получить ту информацию которую просите от ТипЗнч?
А то опять 1000 букв, но одна вода.
Gigi,
19.11.19, 17:07 Системная функция "ТипЗнч()" - не вопрос, а просто мнение
Цитата(Vofka @ 19.11.19, 16:18) *
Если регистр периодический, то обращаясь к таблицам СрезПервых/СрезПоследних там разве доступны реквизиты?

Да, доступны. Так же как и в ресурсах регистра сведений (в отличии от других регистров) можно указывать не только числа
Макс1С,
08.11.19, 13:26 Системная функция "ТипЗнч()" - не вопрос, а просто мнение
Gigi,
ЖКК
Глобальный контекст (Global context)
ТипЗнч (TypeOf)
Синтаксис:
ТипЗнч(<Значение>)
Параметры:
<Значение> (обязательный)
Тип: Произвольный.
Значение, тип которого необходимо получить.
Возвращаемое значение:
Тип: Тип.
Описание:
Получает тип значения.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Пример:
Если ТипЗнч(ТекОбъект) = Тип("СправочникСсылка.Номенклатура") Тогда
...
КонецЕсли;


Тип (Type)
Описание:
Значения данного типа используются для идентификации типов значений. Это необходимо для определения и сравнения типов. Данный тип не имеет литералов и возвращается функциями встроенного языка ТипЗнч и Тип.
Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер). Возможен обмен с сервером. Сериализуется.
Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/core}. Имя типа XDTO: Type


Вопрос. С чего Вы взяли что метод который ТипЗнч должен быть именно такой как Вам он нужен?

Вы там упоминали о том что инструмент не важен для открытия бутылки (с таким подходом Вы б у меня не работали, повзрослеете как специалист - поймете, даже стараться объяснять это не буду).
Но у меня почему-то другая ассоциация возникает:
Купив велосипед Вы предъявляете производителю претензию к тому что велосипед не летает. И самостоятельно начинаете приваривать крылья к велосипеду, пытаясь доказать всем что именно такими и должны быть велосипеды. Хотя даже с приваренными крыльями он всё-равно летать не станет.
MATEVI,
19.04.19, 10:28 Работа с синонимом реквизита шапки документа
ИМХО, 7.7 без FormEx и 1С++ это что 8.0 по сравнению с 8.3.
Когда я имел дело с 7.7. то без этих dll не представлял как можно программировать)
nysysimara,
20.06.18, 8:22 Отправить письмо на почту посредством 1С
1. Код отклика SMTP 550
2. IMAP, SMTP и POP3-серверы Mail.Ru
3. Не забываем что мэйл ру не дружит с некоторыми странами
Gigi,
15.06.18, 10:10 Помогите с сокетами
Попробуйте написать функцию в общем модуле повторного использования что то типа:

Функция ПолучитьОбъектWinsocketClient() Экспорт
     WinsocketClient = Новый COMObject("MSWinsock.Winsock");        
     WinsocketClient.RemoteHost = "localhost";
     WinsocketClient.RemotePort = 12345;
     WinsocketClient.Connect();
     Возврат WinsocketClient;  
КонецФункции


И её дергать для получения WinsocketClient. На сервере вроде должно отработать и возвращать ранее инициализированный объект при повторном вызове
vbi,
14.06.18, 10:15 Программист 1С. Одесса.
Petre @ Сегодня, 9:22 * ,
Мои 40 строчек сразу отсекают большой круг не нужных мне людей и являются в дальнейшем поводом поговорить, т.к. в них я заложил кучу ошибок различного уровня. Анализируя эти ошибки совместно с кандидатом можно понять глубину его знаний.
Отредактировал первое сообщение по поводу просьб о «40 строчек»
Petre,
19.01.18, 16:08 Какие програмулины или сайты используете для написания ТЗ
Обычно использую Визио. Раньше ещё использовал так называемые "Дракон схемы", но последние пару лет позабыл о них.
Хотя инструмент что б описать логику процесса мне очень нравился.
Bernet,
12.01.18, 9:07 1с начала подвисать при работе
Сначала нужно определиться где проблема.
1. Настройте счетчики железа сервера и в момент зависания посмотрите что с ними происходит.
2. Если зависания периодические с равными промежутками времени в 1С, то скорее всего это какая-то обработка ожидания отрабатывает.
Раньше она выполнялась быстро, а сейчас для её выполнения накопился какой-то объем данных, который не позволяет выполняться быстро (или сам пользователь какими-то настройками сам того не зная её включил обработку, которая раньше не выполнялась).
3. Для "типовых обычных форм" насколько я помню есть пользователь регламентных заданий (указывается в константах), если в нем заполнен "зависающий" пользователь, то это может являться причиной.

Самый простой способ который мне пришел на ум:
1. Запустить конфигуратор.
2. Поставить точку остановки на процедуре "при начале работы системы"
3. Запустить отладчик.
4. После остановки в отладчике включить замер производительности
5. Продолжить выполнение запуска предприятия
6. Ничего не делать в системе до зависания.
7. После зависания идем в конфигуратор и отключаем замер производительности
8. Анализируем полученные данные на предмет того какой код за этот период выполнялся.
Alexandro,
30.12.17, 9:12 Программист 1С. Одесса.
reva_serg @ Вчера, 12:54 * ,
Кинул в личку задание и обработку.
reva_serg,
22.12.17, 18:00 Загрузка данных из ShopDesk (*.TCUDOC)
Дальнейшие варианты:
1. Берете и вызываете процедуру регламентного задания из обработки и идете отладчиком.
Смотрите почему не попадает в СоздатьИнвентаризацияТоваровНаСкладе.
2. Смотрите журнал регистрации или в консоле заданий какая ошибка происходит при выполнении СоздатьИнвентаризацияТоваровНаСкладе
yoj,
22.12.17, 11:04 Сканирование в поле ввода, без возможности ввода руками.
Цитата(Gazulo @ 22.12.17, 9:25) *
да но все сейчас работает и без драйверов SCANOPOS

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

20-30 машин это ж не проблема. Зайти удаленно и настроить.
Можно бесконечно долго встраивать различного рода костыли для того что бы как-то работало.
Потом появятся весы в магазинах - опять костыли? Появятся разные фискальные регистраторы - опять костыли?
Можно ведь подойти к вопросу с другой стороны и сделать всё по уму сразу. Решать в конечном счете Вам. Как бы я сделал - уже озвучил.
Gazulo,
21.12.17, 12:29 Загрузка данных из ShopDesk (*.TCUDOC)
Цитата(yoj @ 19.12.17, 17:54) *
Подскажите где может быть прописана такая обработка или путь от куда брать для загрузки в 1с файлы

Где-то в конфигураторе или за его границами)))
Если серверная БД и выполняется автоматом, то скорее всего в регламентных заданиях.
Если файловая БД и в константах стоит пользователь Obmen для выполнения заданий, то опять нужно смотреть регл. задания.
Если пользователь имеет возможность нажимать где-то кнопки, то скорее всего реализовано в виде обработки (может и во внешних быть вообще).
yoj,
09.12.17, 11:52 Программист 1С. Одесса.
Fynjy, базовый оклад обусловлен тем что это всё-таки работа во франче.
Франч готов платить деньги за работу, но не готов платить за то, что сотрудники будут сидеть на работе "в ютубе", "курить", "пить кофе" за оклад.
В конечном счете ЗП зависит от КПД работы сотрудника. Если КПД высокий, то и ЗП будет высокой.

Пишу для всех.
Если Вы высококлассный специалист, то можете написать мне в личку свои пожелания по ЗП.
При этом нужно действительно подтвердить свою квалификацию, наличием сертификатов и опытом работы (описать внедрения в которых участвовали и в роли кого).
Компания рассмотрит эти условия и если они подходят, то будет разработана индивидуальная система мотивации.
Результатом этой системы будет та сумма, которую Вы запросили, но эта сумма не будет состоять из одного оклада.
Оклад по-прежнему останется меньшей частью ЗП. Остальную сумму нужно будет заработать.
Fynjy,
08.12.17, 22:37 Программист 1С. Одесса.
Fynjy, При наличии сертификата эксперта, соответственно сразу на эту должность и пойдёте.
Условия оплаты, будут согласовываться на собеседовании индивидуально.


 i 

Почистил тему от оффтопа
 
Fynjy,
07.12.17, 13:54 Как чесать левое ухо левой, а правое ухо правой рукой в 1С 8.2
Vofka, и уйдет наш топик стартер на форумы С++ и будет там писать.

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

Бородатый сиплюсплюсник: очередной недоодинэсник видать забрёл. 32541510.gif
Bernet, levi, python, Vidocq05, Макс1С,
24.11.17, 7:32 Программист 1С. Одесса.
Ух какой интерес к 40-ка строчкам))), ок подготовлю его в виде обработки и скину в личку
Bernet, Flexy,

21 страниц V   1 2 3 > » 
RSS Текстовая версия Сейчас: 07.05.21, 0:47
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!