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

Хранилище

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

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

2 страниц V   1 2 >

>  Можно ли загрузить данные с базы Baza.mdf в файловую 1С?
Yevhenii
Отправлено: 06.02.18, 10:23


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


Спасибо за подсказку, буду копать)

Цитата(Bernet @ 06.02.18, 10:12) *
Фамилия пожилого автора случайно не Бармак?)


offtopchik.gif
Честно говоря фамилии не знаю, знаю что зовут Андрей, а его творение обзывается Kolobok 09000000.gif
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #138222 · Ответов: 2 · Просмотров: 374
 

>  Можно ли загрузить данные с базы Baza.mdf в файловую 1С?
Yevhenii
Отправлено: 06.02.18, 10:06


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


1С Предприятие 8.2.19.130 обычное приложение, обычная форма
Конфигурация "Управление торговым предприятием для Украины", редакция 1.2.

День добрый ув. форумчане!

Есть у меня файловая 1С с готовым функционалом для работы на предприятии и есть старая прога на Delphi+MS SQL Server 2000 по продажам. По сути два предприятия работают сейчас в старой проге. Свой функционал я готов перенести в 1с хоть сейчас, но есть одно "НО", а именно нужно видеть остатки "своей" номенклатуры в наличии у второго предприятия ( собственно пока они не созреют переходить на 1с). Поэтому хочу их просто подгружать со старой базы *.mdf в свою 1С. доступ к базе что ни на есть прямейший, все на одном удалённом серваке, на диске D:\ в соседних папках. Периодичность синхронизации: "по запросу", 2-3 раза в день.

Первое что приходит на ум делать выгрузку остатков в XML файл и затягивать ее в 1с, но для этого надо привлекать автора проги на Delphi, что весьма проблематично, т. как он уже пожилой человек crazy.gif и давненько в нашей конторе не работает. Кому известно об других вариантах обмена данных с MDF базой на SQL Server прошу поделиться help.gif . Заранее благодарен.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #138220 · Ответов: 2 · Просмотров: 374
 

>  Передача значения реквизита с обработки на форму нового документа
Yevhenii
Отправлено: 05.09.17, 13:37


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


podcast @ Сегодня, 14:07 *
да изначально так надо было и делать, просто мусора в голове было много вот и полез в дебри))
только у меня реквизит что на обработке, что в документе "сотрудник", а ЭкспортСотр это экспортная переменная
тогда б вышло всё это в три строчки кода:
Форма = Документы.ВыдачаАванса.ПолучитьФормуНовогоДокумента();
    Форма.Сотрудник.Значение = Сотрудник;
    Форма.ОткрытьМодально();


Bernet @ Сегодня, 14:16 * ,
да, Вы правы, только вариант получается запутаннее чем заполнить реквизит прям из обработки, ИМХО)
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #131714 · Ответов: 5 · Просмотров: 539
 

>  Передача значения реквизита с обработки на форму нового документа
Yevhenii
Отправлено: 05.09.17, 12:56


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


Bernet @ Сегодня, 12:54 * ,


Да и сам понимаю что разводить зоопарк нет смысла

но если тупо скопипастить то вылазять ошибочки
{Документ.ВыдачаАванса.Форма.ФормаДокумента.Форма(25,9)}: Переменная не определена (Объект)
Форма = <<?>>Объект.ПолучитьФорму("ФормаДокумента",ВладелецФормы, КлючУникальности); (Проверка: Толстый клиент (обычное приложение))
{Документ.ВыдачаАванса.Форма.ФормаДокумента.Форма(26,19)}: Переменная не определена (ЗначениеПараметра)
Форма.ЭкспоСотр = <<?>>ЗначениеПараметра; (Проверка: Толстый клиент (обычное приложение))


что в принципе то и логично....

P.S> Привет с Хмеля) Взаимно rulez.gif



Плотно пообедав за счёт предприятия crazy.gif на свежую голову и сытый желудок задача была решена следующим образом:

в модуле основной формы открываемого документа была объявлена переменная:
Перем ЭкспортСотр Экспорт;

далее в обработчике нажатия на кнопку из обработки пишем следующее:
Форма = Документы.ВыдачаАванса.ПолучитьФормуНовогоДокумента();
    Форма.ЭкспортСотр = Сотрудник;
    Форма.ОткрытьМодально();

И последний шаг: в обработчике документа ПриОткрытии() заполняем нужные реквизиты
Если ЭтоНовый() Тогда    
        Сотрудник = ЭкспортСотр;
        Дата = ТекущаяДата();    
    Иначе
    КонецЕсли;


Элементарно не правда ли?) 19000000.gif
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #131702 · Ответов: 5 · Просмотров: 539
 

>  Передача значения реквизита с обработки на форму нового документа
Yevhenii
Отправлено: 05.09.17, 11:50


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


1С Предприятие 8.2 обычное приложение, обычная форма
Конфигурация "Управление торговым предприятием для Украины", редакция 1.2.

День добрый!

Открываю ФормуНовогоДокумента по клику кнопки на обработке, на обработке есть заполненый реквизит ФизЛицо, в документе такой же. Хочу что б при создании он подтягивался
Тему про передачу параметров читал
но я "не вижу" реквизитов обработки с обработчика документа "ПередОткрытием"

есть идея записать в какую то константу или глобальную переменную, но правильно ли это? или же все таки есть более простой и лёгкий способ передачи значения реквизита обработки в реквизит нового документа?

  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #131700 · Ответов: 5 · Просмотров: 539
 

>  Формирование печатной формы этикетки
Yevhenii
Отправлено: 14.04.17, 13:15


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


Bernet @ Сегодня, 13:52 * ,


Отлично, попробую попилить обработчик ожидания, а если не выйдет то тогда уж и с макетами повожусь)

спасибо!
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #125684 · Ответов: 11 · Просмотров: 1290
 

>  Формирование печатной формы этикетки
Yevhenii
Отправлено: 14.04.17, 12:06


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


Bernet @ Сегодня, 11:26 * ,
не проще, так как принтер этикеток такая зараза, что я долго-долго подгонял под него макет и настраивал на нем печать нескольких копий.
а перекраивать макет это означает ещё долго добиваться правильной и ровной печати.

а так, поставил таймер на данный кусок кода и всё работает))) просто в С# кодил немного, то там с таймерами много интересностей можно сделать, и работа с ними довольно не сложная)
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #125679 · Ответов: 11 · Просмотров: 1290
 

>  Формирование печатной формы этикетки
Yevhenii
Отправлено: 14.04.17, 10:21


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


Нашел! Нашел где собака зарыта.
Присвоил счётчику при старте значение 1.
Залипил в новую кнопку
НарисоватьМакет2();
    ПечатьЭтикетки();
    Счётчик = Счётчик +1;


И вот что происходит, макет перерисовывается и печатается если на кнопку нажимать не очень быстро, если же быстро нажать пару раз "даблкликом" на мыше, то он напечатает 4 этикетки но с последним значением счётчика.

т.е. процедура печати работает медленее чем процедура перерисовки и сам цикл соответственно

теперь вопрос: как в 1С установить задержку? ну или таймер что б делать печать на каждый "тик" ???
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #125668 · Ответов: 11 · Просмотров: 1290
 

>  Формирование печатной формы этикетки
Yevhenii
Отправлено: 14.04.17, 10:13


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


Bernet @ Сегодня, 10:41 * ,

Штрих код правильный, тут все проверено. Т.е. печатает 13-значный код от ХХХХХХХХХХ001 до ХХХХХХХХХХ999 и сканируеться он без проблем из заданым значением.

Как я думаю, тут есть 2 зацепки, это собственное "родная" процедура печати в 1С и приоритет выполнения процедур, т.е. сама печать происходит после выполнения процедуры из которой она вызывается. т.е. программа не может передать управление в точку печати, а потом вернуть ее в обратно в цикл, таким образом команды печати накапливаются с параметрами и ссылками на макет для печати, но выполняются только когда идет выход с процедуры нажатия кнопки..... но это только домыслы...
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #125666 · Ответов: 11 · Просмотров: 1290
 

>  Формирование печатной формы этикетки
Yevhenii
Отправлено: 14.04.17, 9:14


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


1С Предприятие 8.2 обычное приложение, обычная форма
Конфигурация "Управление торговым предприятием для Украины", редакция 1.2.

День добрый!

Стоит задача печатать этикетки со штрихкодом. Код 13-значный. 10 цифр относительно уникальные, 3 цифры в конце должны меняться относительно количества напечатаных этикеток.

Алгоритм следующий:
Нажатие на кнопку -> Цикл от 1 до количества нужных этикеток -> Прорисовка самого макета на ТабДоке -> Печать(програмно, путём имитирования нажатия клавиш Сtrl+P или Ctrl+Shift+P -> Увеличиваю Счётчик на 1;

В итоге вижу отладчиком что код выполняется поэтапно так как нужно, и принтер печатает заданное количество этикеток, но все они идут с кодом который равен количеству печати.
Хотя процедура перерисовки вродь как срабатывает, т.е. програмно переназначает значение штрих коду на каждом этапе от 1 до 5 (к примеру до 5) т.е. Штрих код пять раз перерисовывается со значением от ХХХХХХХХХХ001 до ХХХХХХХХХХ005 а на печать вылазит 5 штук одинаковых со значением ХХХХХХХХХХ005.
Может кто что знает того что не знаю или не понимаю я? буду весьма благодарен за любые советы.

Код привожу

Нажатие на кнопку:

Процедура Кнопка1Нажатие(Элемент)
        ЧислоДо = ЭлементыФормы.ПолеВвода2.Значение;
        ЧислоОт =1;
        Пока ЧислоОт <=ЧислоДо Цикл
            Счётчик = ЧислоОт;
            НарисоватьМакет2();  // процедура перерисовки макета
            ПечатьЭтикетки();    // процедура печати        
            ЧислоОт=ЧислоОт+1;
        КонецЦикла;    
КонецПроцедуры


процедура перерисовки макета

Процедура НарисоватьМакет2()
    Макет = Обработки.ПечатьШтрихкодов.ПолучитьМакет("ПечатьНаклейки");
    ОбластьНадпись = Макет.ПолучитьОбласть("Надпись");
    ОбластьМодель = Макет.ПолучитьОбласть("Модель");
    ОбластьШтрихКод = Макет.ПолучитьОбласть("ШтрихКод");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ЭлементыФормы.ТабДок.ВерхнийКолонтитул.Выводить = Ложь;
    ЭлементыФормы.ТабДок.НижнийКолонтитул.Выводить = Ложь;
    ЭлементыФормы.ТабДок.АвтоМасштаб = Истина;
    ЭлементыФормы.ТабДок.ПолеСверху = 0;
    ЭлементыФормы.ТабДок.ПолеСнизу=0;
    ЭлементыФормы.ТабДок.ПолеСлева = 0;
    ЭлементыФормы.ТабДок.ПолеСправа = 0;
    ЭлементыФормы.ТабДок.РазмерКолонтитулаСверху = 0;
    ЭлементыФормы.ТабДок.РазмерКолонтитулаСнизу = 0;
    ЭлементыФормы.ТабДок.ИмяПринтера = "TSC TTP-244 Pro_Server";
    ЭлементыФормы.ТабДок.Очистить();
    ЭлементыФормы.ТабДок.Вывести(ОбластьНадпись);
    ОбластьМодель.Параметры.Модель  = Строка(ЭтотОбъект.Номенклатура.Наименование);
    ЭлементыФормы.ТабДок.Вывести(ОбластьМодель);
    РисунокШтрихкод  = ОбластьШтрихКод.Рисунки.КодРисунок;
    СтрШтрихКод=ШтрихКод+"000";
    Если Счётчик <=9 Тогда
        СШтрихКод = Лев(СтрШтрихКод,12)+Строка(Счётчик);
    ИначеЕсли Счётчик >9 И    Счётчик <=99 Тогда
        СШтрихКод = Лев(СтрШтрихКод,11)+Строка(Счётчик);
    ИначеЕсли  Счётчик >99 И    Счётчик <=899     Тогда
        СШтрихКод = Лев(СтрШтрихКод,10)+Строка(Счётчик);
    Иначе
        Сообщить("Напечатано 900 этикеток!!!");
    КонецЕсли;
    
    
    ОбластьШтрихКод.Рисунки.КодРисунок.Объект.ТипКода = 4;   // тип штрихкода Code-128
    ОбластьШтрихКод.Рисунки.КодРисунок.Объект.Сообщение = ?(ПустаяСтрока(""),СШтрихКод,"");
    ЭлементыФормы.ТабДок.Вывести(ОбластьШтрихКод);
    
    Если Флаг=Истина Тогда
        ОбластьПодвал.Параметры.Флаг = Строка("Ростовка");
    Иначе
        ОбластьПодвал.Параметры.Флаг = Строка("Вязка");
    КонецЕсли;
    ЭлементыФормы.ТабДок.Вывести(ОбластьПодвал);
    
    
    
КонецПроцедуры


процедура печати

Процедура ПечатьЭтикетки()
    ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ТабДок;
    Shell = Новый COMОбъект("WScript.Shell");
    //Shell.SendKeys("%+A+H)");
    Shell.SendKeys("^P"); //имитируем нажатие Ctr+Р   Предварительный просмотр
    //Shell.SendKeys("%фм");   //Параметры страницы
    ////· "Shift" - +;
    ////· "Ctrl" - ^;
    ////· "Alt" - %.
                          
КонецПроцедуры



Bernet @ Сегодня, 9:57 * ,

Сори, клацнул Enter в Теме в пустом посте, потом пришлось редактировать уже опубликованый)
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #125660 · Ответов: 11 · Просмотров: 1290
 

>  Формирование печатной формы этикетки
Yevhenii
Отправлено: 14.04.17, 8:52


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


1С Предприятие 8.2 обычное приложение, обычная форма
Конфигурация "Управление торговым предприятием для Украины", редакция 1.2.

День добрый!


 ! 

Правила: 3,4
 
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #125656 · Ответов: 11 · Просмотров: 1290
 

>  Запись нескольких значений справочника в один реквизит регистра сведений
Yevhenii
Отправлено: 30.03.17, 9:21


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


В общем если кому интересно.
Провел я следующий эксперимент:

Взял обработку v8tablesizes и смоделировал ситуацию заполнения максимального количества записей на один день по трём предложенным моделям:

1) Регистр сведений с реквизитом типа СправочникСсылка.СоставСмен (Справочник.СоставСмен имеет Табл. часть с реквизитом типа СправочникСсылка.ФизЛица)
т.е. выходит что за день максимум может быть записано 60 строк в регистр и 8 записей в справочник;

2) Регистр сведений с четырмя идентичными реквизитами типа СправочникСсылка.ФизЛица
те же 60 записей в регистре но сам регистр будет "шире" на 3 столбца

3) для каждого Физ.Лица пишем отдельную строку в регистре
итого максимум 240 записей за день

Что в итоге получилось:

Размеры с данными на 1 день:
1) 58 074 б. (регистр) + 73 292 б. (справочник) =131 366 б.
2)133 762 б. (регистр с 4 физ.лицами)
3) 1 000 332 б. (регистр с 1 физ. лиц. но с записями для каждого сотрудника со смены, 240 записей)

Размеры с данными на 2 день:
1) 123 858 б. (регистр) + 76 652 б. (справочник) =200 510 б.
2)166 530 б. (регистр с 4 физ.лицами)
3) 1 180 556 б. (регистр с 1 физ. лиц. но с записями для каждого сотрудника со смены, 240 записей)

Результат прироста:
1)69 144 б.
2)32 768 б.
3)180 556 б.


Ка видим, Вариант 3 со схемой "на каждое физ. лицо 1 строка в регистре" можно отбросить, т. как прирост в день будет существенно выше. да и записей в регистре 240 против 60 не в его пользу.

Далее рассматриваю варианты 1 и 2.
Прирост базы при варианте 1 будет примерно 23,7 Мб в год. А прирост по варианту 2 примерно 11,25 Мб в год. Актуальность данных не более 2-х лет, поэтому разницу в 12 Мб можно считать не критичной и перенести выбор варианта реализации в плоскость "удобство реализации и последующей работы".

Оценив все "За" и "Против" было решено остановиться на варианте 1 (со справочником смен) т.как в дальнейшем этой смене нужно будет "прикручивать" зарплату от выработки, а так же заглядывая на перёд, в планах есть создание рабочего места "кадровика" который будет планировать эти смены и контролировать посещения, но это уже, как говориться, совсем другая история.....
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #125017 · Ответов: 9 · Просмотров: 887
 

>  Запись нескольких значений справочника в один реквизит регистра сведений
Yevhenii
Отправлено: 28.03.17, 10:31


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


Цитата(sava1 @ 28.03.17, 11:17) *
Пишите как Вам удобно для обработки.


Не хотелось бы попасть в ситуацию: "удобно - не всегда правильно и рационально"
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #124876 · Ответов: 9 · Просмотров: 887
 

>  Запись нескольких значений справочника в один реквизит регистра сведений
Yevhenii
Отправлено: 28.03.17, 10:05


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


Bernet @ Сегодня, 10:07 * ,Спасиб
Цитата(Bernet @ 28.03.17, 10:07) *
Если, как правило, в качестве сотрудника всегда идет несколько человек (смена) может есть смысл задуматься о создании справочника Смены с таб. частью Сотрудники, где можно перечислить всех сотрудников данной смены? И вместо ссылки на справочник сотрудники взять справочник смены



Спасибо за ответ!
Я в принципе так и думал, но есть несколько "НО"
1-е "НО" - смены не стабильны, текучка на производстве огромная, и даже смена которая ходит по графику, за частую постоянно меняется, т.е. есть 30 человек в одну смену и есть 7 станков состав которых чуть ли не каждый раз разный, так вот мне надо писать именно состав этого станка в регистр. И соответственно хранить эти данные хотя бы год-два.

Из этого имею 2-е "Но" может тогда более рационально писать 2-4 лишних строки в регистр чем писать каждый день 5-7 новых значений в справочник?

Как, Вы считаете?
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #124874 · Ответов: 9 · Просмотров: 887
 

>  Запись нескольких значений справочника в один реквизит регистра сведений
Yevhenii
Отправлено: 28.03.17, 9:01


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


1С Предприятие 8.2 обычное приложение, обычная форма
Конфигурация "Управление торговым предприятием для Украины", редакция 1.2.

День добрый!

Уважаемые, подскажите как будет правильно реализовать:
Есть периодический регистр сведений куда будет писаться инфа о маркировке произведенной продукции. Структура регистра следующая:
Период - стандартный реквизит;
Код - 13 значный код для внутренней стикеровки выпускаемой продукции;
Носенклатура - СправочникСсылка.Номенклатура
Ответственный - СправочникСсылка.ФизическиеЛица ( человек который будет клеить стикеры);
Сотрудники - СправочникСсылка.ФизическиеЛица (несколько человек который сделали продукцию, смена)

Так вот получается что "Сотрудников" всегда будет от 2-х до 5-ти, и писать нужно данные о всей бригаде.
Дума что писать несколько строк в регистр на каждого сотрудника с одними и теми же данными не есть правильно.
Что посоветуете??
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #124866 · Ответов: 9 · Просмотров: 887
 

>  1C и термопринтер TSC ttp-244 pro
Yevhenii
Отправлено: 24.03.17, 8:56


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


Gazulo @ Вчера, 17:38 * ,

если речь идёт об настройках драйвера принтера при печати то таких пунктов там попросту нет, уж я тот драйвер уже вдоль и поперёк изучил.
а если вы имеете в виду в 1С то подскажите где это есть либо я такого не находил
  Форум: Работа с торговым оборудованием · Просмотр сообщения: #124658 · Ответов: 3 · Просмотров: 1241
 

>  1C и термопринтер TSC ttp-244 pro
Yevhenii
Отправлено: 23.03.17, 16:14


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


1С Предприятие 8.2 обычное приложение, обычная форма
Конфигурация "Управление торговым предприятием для Украины", редакция 1.2.

Ребятушки, может кто сталкивался с подобным чудо-девайсом и разобрался что с ним делать!?

в общем дело такое: есть термопринтер TSC ttp-244 pro. Драйвера: Seagul TSC TSPL Driver Версия:7.4.3 так же пробовал работать на "родном" драйвере с диска который был с девайсом (TSC TSPL Driver Версия: 7.3.4 M-5)

поставил драйвер, поставил утилиту BarTender UltraLite.
немножко поигрался с настройками и добился того что с утилиты печатает отлично, теперь нужно печатать этикетки непосредственно с 1С
и вот тут то началось неведомое.
Пробую печатать обработкой "Печать Этикеток" в итоге если выбрать размеры этикетки по реальному размеру материала то он печатает на трёх-четырёх штуках, т.е. разносит сам рисунок по нескольким этикеткам. Если сделать этикетку в 1С в соотношении где то на 50% меньше чем реальный размер материала, то вродь как печатает, но соответственно очень маленькое изображение, если выставить размеры страницы раза в два больше чем сам рисунок и чем размеры самого материала то примерно можно методом тыка добиться того что изображение будет занимать почти всю полезную область на материале, как бы и должно быть, но только период печати получается этикетки в три. т.е три пустые-одна напечатаная-три или три с половиной пустые. Но это есть совсем не хорошо с точки полезности использования материала. Получается что я искусственно увеличил реальную область печати, но принтер "думает" что он печатает 150х100 мм. вместо 50х30мм по реальному размеру материала ну и начало печати естественно каждый раз смещается, вообщем это не печать, а сплошная болячка.

Может кто сталкивался с данной моделью и особенностью его печати из 1С. Буду весьма благодарен за любую помощь.
  Форум: Работа с торговым оборудованием · Просмотр сообщения: #124618 · Ответов: 3 · Просмотров: 1241
 

>  Не правильно записывает движения по регистру накопления
Yevhenii
Отправлено: 16.03.17, 15:46


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


Всё, разобрался))) Всем спасибо, за подсказки))

//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    СуммаОплатыТмп=СуммаДолл;
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПродажаМатериала.Ссылка КАК СсылкаДокПродажи,
        |    ПродажаМатериала.ОплатаПоДок КАК ОплатаПоДокПродажи,
        |    ПродажаМатериала.Курс КАК КурсДокПродажи,
        |    ПродажаМатериала.СуммаПоДок КАК СуммаПоДокПродажи
        |ИЗ
        |    Документ.ПродажаМатериала КАК ПродажаМатериала
        |ГДЕ
        |    ПродажаМатериала.Оплата = &Оплата
        |    И ПродажаМатериала.Контрагент = &Контрагент
        |
        |УПОРЯДОЧИТЬ ПО
        |    ПродажаМатериала.Дата";
    
    Запрос.УстановитьПараметр("Оплата", Ложь);
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Движения.ПродажаМатериала.Записывать = Истина;
    Движения.ПродажаМатериала.Очистить();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ПлатимТЕМП= (ВыборкаДетальныеЗаписи.СуммаПоДокПродажи - ВыборкаДетальныеЗаписи.ОплатаПоДокПродажи);
        Если (СуммаОплатыТмп>=ПлатимТЕМП и СуммаОплатыТмп>0) Тогда
            ДокОбъект = ВыборкаДетальныеЗаписи.СсылкаДокПродажи.ПолучитьОбъект();
            
            //*************мои движения
            
        ИначеЕсли (СуммаОплатыТмп<ПлатимТЕМП и СуммаОплатыТмп>0) Тогда
              //*************мои движения
            
        КонецЕсли;
         // Движения.Записать(); (!!Этому тут не место)
        
    КонецЦикла;
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
      Движения.Записать(); //*************
//************* вот она мать всех зол(ну и конечно моя не внимательность!)  надо было просто написать это после цикла с движениями, а не в самом цикле после каждого набора  движений или в каждом "Если"
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #124223 · Ответов: 7 · Просмотров: 719
 

>  Не правильно записывает движения по регистру накопления
Yevhenii
Отправлено: 16.03.17, 15:22


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


Цитата(logist @ 16.03.17, 15:13) *
Цитата(Yevhenii @ 16.03.17, 15:07)
но ведь в реквизиты перебираемых документов всю сумму исправно расписывает
Причем тут ваши документы. Записи в регистр это совсем другой механизм.


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

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

P.S. Добавил Движения.Записать(); в каждый блок Если (изначально так и делал), перепроверил, результат тот же.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #124219 · Ответов: 7 · Просмотров: 719
 

>  Не правильно записывает движения по регистру накопления
Yevhenii
Отправлено: 16.03.17, 15:07


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


podcast @ Сегодня, 14:57 * ,
да, писал в каждом блоке "Если" ситуация та же. Спецом вынес за цикл.
Движения.ПродажаМатериала.Записывать = Истина;
        Движения.ПродажаМатериала.Очистить();

результат тот же

logist @ Сегодня, 15:03 * ,
я тоже сначала так подумал, но ведь в реквизиты перебираемых документов всю сумму исправно расписывает. плюс отладчиком проверял, по всем строкам проходит так как надо, значения рассчитывает верно, но в регистр почему пишет только последнюю сумму
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #124217 · Ответов: 7 · Просмотров: 719
 

>  Не правильно записывает движения по регистру накопления
Yevhenii
Отправлено: 16.03.17, 14:38


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


1С Предприятие 8.2 обычное приложение, обычная форма
Конфигурация "Управление торговым предприятием для Украины", редакция 1.2.

День добрый, уважаемые.

решаю следующую задачу: есть документ "ПродажаМатериала" коим собственно и продается материал. Есть документ "Оплата" который может оплатить как конкретный документ продажи
так и произвольно внести оплату.
Часть которая оплачивает конкретный документ работает нормально.
А вот часть по произвольно оплате не очень.
Алгоритм следующий: Делаю выборку документов продажи по выбранному контрагенту и с реквизитом Оплата=Ложь (т.е. все не оплаченые документы по этому контрагенту).
беру сумму к оплате (СуммаОплатыТмп) и сумму к оплате по выбранному документу из выборки (СуммаПоДокПродажи) и определю сколько "отрезать" для оплаты текущего документа(ВсяСуммаКОплате-СуммаУжеОплочено), если сумма к оплате больше то оплачиваю документ "в ноль" и ставлю реквизит Оплата=Истина и минусую первоначальную сумму на сумму оплаты (СуммаОплатыТмп=СуммаОплатыТмп-ПлатимТЕМП;) или если не хватает закрыть "в ноль" то оплачиваю на ту сумму что имею и оставляю Оплата=Ложь
все это дело пишу в регистр но в итоге получаю приход по регистру только на последний кусочек суммы, т.е. последнюю итерацию. Хотя цифры оплаты по документам расчитываются и записываются верно.
где делаю не так?

//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    СуммаОплатыТмп=СуммаДолл;
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПродажаМатериала.Ссылка КАК СсылкаДокПродажи,
        |    ПродажаМатериала.ОплатаПоДок КАК ОплатаПоДокПродажи,
        |    ПродажаМатериала.Курс КАК КурсДокПродажи,
        |    ПродажаМатериала.СуммаПоДок КАК СуммаПоДокПродажи
        |ИЗ
        |    Документ.ПродажаМатериала КАК ПродажаМатериала
        |ГДЕ
        |    ПродажаМатериала.Оплата = &Оплата
        |    И ПродажаМатериала.Контрагент = &Контрагент
        |
        |УПОРЯДОЧИТЬ ПО
        |    ПродажаМатериала.Дата";
    
    Запрос.УстановитьПараметр("Оплата", Ложь);
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Движения.ПродажаМатериала.Записывать = Истина;
    Движения.ПродажаМатериала.Очистить();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ПлатимТЕМП= (ВыборкаДетальныеЗаписи.СуммаПоДокПродажи - ВыборкаДетальныеЗаписи.ОплатаПоДокПродажи);
        Если (СуммаОплатыТмп>=ПлатимТЕМП и СуммаОплатыТмп>0) Тогда
            ДокОбъект = ВыборкаДетальныеЗаписи.СсылкаДокПродажи.ПолучитьОбъект();
            ДокОбъект.ОплатаПоДок =ПлатимТЕМП;
            ДокОбъект.Оплата = Истина;
            ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
            
            // регистр ПродажаМатериала Приход
            Движение = Движения.ПродажаМатериала.Добавить();
            Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
            Движение.Период = Дата;
            Движение.Контрагент = Контрагент;
            Движение.Дата = Дата;
            Движение.СтоимостьДолл = ПлатимТЕМП;
            Движение.СтоимостьГрн = (ПлатимТЕМП*ВыборкаДетальныеЗаписи.КурсДокПродажи);
                    
            //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
            СуммаОплатыТмп=СуммаОплатыТмп-ПлатимТЕМП;
            ОбновитьДопИнфоВсех();
        ИначеЕсли (СуммаОплатыТмп<ПлатимТЕМП и СуммаОплатыТмп>0) Тогда
            ДокОбъект = ВыборкаДетальныеЗаписи.СсылкаДокПродажи.ПолучитьОбъект();
            ДокОбъект.ОплатаПоДок =СуммаОплатыТмп;
            ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
            
            // регистр ПродажаМатериала Приход
            
            Движение = Движения.ПродажаМатериала.Добавить();
            Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
            Движение.Период = Дата;
            Движение.Контрагент = Контрагент;
            Движение.Дата = Дата;
            Движение.СтоимостьДолл = СуммаОплатыТмп;
            Движение.СтоимостьГрн = (СуммаОплатыТмп*ВыборкаДетальныеЗаписи.КурсДокПродажи);
            Движения.Записать();

            //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
            
            СуммаОплатыТмп=0;
            ОбновитьДопИнфоВсех();
            
        КонецЕсли;
         // Движения.Записать();
        
    КонецЦикла;
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #124213 · Ответов: 7 · Просмотров: 719
 

>  Меняется цвет фона выделения
Yevhenii
Отправлено: 27.01.17, 12:47


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


1С Предприятие 8.2 обычное приложение, обычная форма
Конфигурация "Управление торговым предприятием для Украины", редакция 1.2.

Здравствуйте. Если можно растолкуйте почему так происходит и как можно исправить.

Есть обработка. на ней лежат Табличные поля с ТипЗначения ДокументСписок.ИмяДокумента.
Соответственно в них и отображается список нужных мне документов.
В свойствах ТабличногоПоля ставлю значение ЦветФонаВыделения: Акварельно-синий (AliceBlue)
И вот когда фокус находится на этом ТабличномПоле ЦветФонаВыделения отрабатывает отлично. Как только же фокус переходит на другой элемент ЦветФонаВыделения меняется по ходу на системный, что не есть гуд. т. как строки сами по себе красятся при выводе в соответствии к многочисленным статусам документа и лишний цвет будет путать пользователя который мягко говоря сложно воспринимает работу на ПК как таковую.
Скрин прилагаю

  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #122245 · Ответов: 0 · Просмотров: 602
 

>  Работает ли СообщениеПользователю в управляемой форме обычного приложения?
Yevhenii
Отправлено: 19.01.17, 16:35


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


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

Теперь другая проблемка:
Этот же документ где Форма документа является управляемой.
В обработке на ТабличномПоле с типом данных ДокументСписок.ИмяДокумента вывожу список данных документов, но при попытке открыть документ мне открывается документ со стандартной сконфигурируемой обычной формой. Т.е. не управляемая которая открывается при создании, а стандартная. С свойствах документа создана только одна управляемая форма, она же выбрана как основная и как дополнительная форма документа.
Как мне по клику открывать документ именно с моей управляемой формой?

 ! 

Правила: 6
 
  Форум: Программирование управляемых форм 1С 8.2 · Просмотр сообщения: #121942 · Ответов: 9 · Просмотров: 1552
 

>  Работает ли СообщениеПользователю в управляемой форме обычного приложения?
Yevhenii
Отправлено: 19.01.17, 11:23


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


1С Предприятие 8.2 обычное приложение.
Конфигурация "Управление торговым предприятием для Украины", редакция 1.2.

Здравствуйте уважаемые.

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

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



и так:
&НаСервере
Процедура Сообщить4НаСервере()
    Сообщение4 = новый СообщениеПользователю;
    Сообщение4.УстановитьДанные(РеквизитФормыВЗначение("Объект"));
    Сообщение4.Текст = "Сначала введите курс!";
    Сообщение4.Поле = "Курс";
    Сообщение4.Сообщить();
КонецПроцедуры


&НаКлиенте
Процедура ПродажаПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
    
    Если Элементы.ПолеКурс.ТекстРедактирования="0,00" Тогда
    
        Отказ=Истина;
            Сообщить4НаСервере();

    КонецЕсли;
КонецПроцедуры
  Форум: Программирование управляемых форм 1С 8.2 · Просмотр сообщения: #121913 · Ответов: 9 · Просмотров: 1552
 

>  Вывод информации по клику на элемент
Yevhenii
Отправлено: 08.09.16, 14:47


Общительный
**

Группа: Пользователи
Сообщений: 32
Регистрация: 07.02.16
Из: Хмельницкий
Пользователь №: 48330


Vofka @ Сегодня, 14:30 * ,

Я просто немного запутался со способами отбора, я раньше делал только так: при вызове новой ФормыСписка устанавливал отбор эта форма открывалась уже с нужными мне данными. А теперь получилось что данные в ТабличномПоле прогружались сразу целиком без отбора при загрузке формы обработки на которой и лежит это поле, а сам код отбора я не понял где должен отрабатывать, в событиях формы или поля и как то ещё. Но методом проб, ошибок и гугловодства я пришел к этому:

Процедура ПриОткрытии()
    ЭлементыФормы.ТабличноеПоле1.Значение.Отбор.МестоРаботы.Использование = Истина;
    ЭлементыФормы.ТабличноеПоле1.Значение.Отбор.МестоРаботы.ВидСравнения =  ВидСравнения.Равно;
    ЭлементыФормы.ТабличноеПоле1.Значение.Отбор.МестоРаботы.Значение = Справочники.МестоРаботы.НайтиПоНаименованию("бла-бла-бла");
КонецПроцедуры


P.S. делал для другой обработки, выводил список сотрудников из справочника по отметке МестоРаботы из соответствующего справочника, и далее при активации строки рядышком в ТабличноеПоле2 вывожу записи по примитивному регистру накопления с некими данными при помощи того же отбора только значение беру с выделенной строки ТабличногоПоля1

Р.P.S. Как я уже писал выше, я начинал кодить на С# и поэтому как то на автомате (по умолчанию что ли) ищу способы сделать так как бы я делал в Visual Studio, а оно далеко не всегда соответствует друг другу.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #116391 · Ответов: 7 · Просмотров: 1352
 

2 страниц V   1 2 >

Новые сообщения  Открытая тема (есть новые ответы)
Опрос  Опрос (есть новые голоса)
Нет новых сообщений  Открытая тема (нет новых ответов)
Нет новых голосов  Опрос (нет новых голосов)
Популярная тема  Горячая тема (есть новые ответы)
Закрыта  Закрытая тема
Нет новых  Горячая тема (нет новых ответов) Перемещена  Тема перемещена
 

RSS Текстовая версия Сейчас: 19.07.18, 11:54
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!

Курсы валют: доллар США к гривне Курсы валют: евро к гривне Курсы валют: российский рубль к гривне