Степанов Николай

43
Рейтинг

Tapochki-tmn
Николай Степанов



  •   Регистрация: 17.05.2010 (13 лет назад)

  •   Был(а) на сайте: 24.12.2023

Подписчики 1

Рейтинг 43

Валовая прибыль из документа "Заказ покупателя" для оценки эффективности предполагаемой продажи

Статья Программист Платформа 1С v8.3 1С:Управление торговлей 10 1С:Управление производственным предприятием Управленческий учет Windows Бесплатно (free) Нет файла Универсальные функции

Чтобы не формировать несколько отчетов выставляя фильтры по организации/складам/номенклатуре/документу-регистратору и не сводить потом всю эту информацию воедино пытаясь оценить эффективность и рентабельность предполагаемой продажи по конкретному документу заказа покупателя предлагаю встроить в документ вызов отчета по валовой прибыли, с подменой запроса чтобы увидеть данные по себестоимости и рассчитать прибыль/эффективность/рентабельность с уже настроенными фильтрами по данным из заказа покупателя. Доработка разрабатывалась для УПП 1.3, но может быть встроена и в УТ 10.3. Может кому пригодится.

07.08.2014    7472    Tapochki-tmn    12       

5

Валовая прибыль из документа "Реализация товаров и услуг" для оценки эффективности продажи

Статья Программист Бизнес-аналитик Платформа 1С v8.3 1С:Управление торговлей 10 1С:Управление производственным предприятием Управленческий учет Windows Бесплатно (free) Нет файла Оптовая торговля Розничная торговля Работа с интерфейсом

Чтобы не формировать несколько отчетов, выставляя фильтры по организации/складам/номенклатуре/документу-регистратору и не сводить потом всю эту информацию воедино, пытаясь оценить эффективность и рентабельность продаж по конкретному документу реализации, предлагаю встроить в документ вызов типового отчета по валовой прибыли с уже настроенными фильтрами. Доработка разрабатывалась для УПП 1.3, но может быть встроена и в УТ 10.3. Может, кому пригодится.

06.08.2014    8548    Tapochki-tmn    2       

7

Обмен данными между "Торговля и склад" 9.2 (7.7) и Бухгалтерия 2.0 (8.2).

Инструменты и обработки Системный администратор Программист Бухгалтер Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Торговля и склад 7.7 1С:Конвертация данных Россия Бухгалтерский учет Абонемент ($m) Внешняя обработка (ert,epf) Логистика, склад и ТМЦ Перенос данных 1C

Измененные в "Конвертация данных 2" правила обмена между "Торговля и склад" 9.2 (7.7) и Бухгалтерия 2.0 (8.2). Файл правил обмена Tr9Ac820.xml от обработки "Выгрузка в бухгалтерию ред. 2.0". Для выгрузки из "Торговля и склад" 9.2 (7.7) используется внешняя обработка V77Exp.ert с измененным кодом, сформированным в КД 2 при сохранении правил обмена.

1 стартмани

24.08.2012    36768    393    Tapochki-tmn    21       

24

Журнал регистрации приходных и расходных ордеров

Отчеты и формы Бухгалтер Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Россия Бухгалтерский учет Абонемент ($m) Внешняя обработка (ert,epf) Кассовые операции

"Журнал регистрации приходных и расходных ордеров" выполненный в виде внешней обработки. Может кому пригодится, чтобы самому не писать.

1 стартмани

22.03.2012    14609    38    Tapochki-tmn    4       

7

Комментарии

DevОптимизация работы в списке "ПриПолученииДанных"#27 20.06.23 9:25
(25) Эмпирическим путем заметил, что при установке точки останова и проверке Отладчиком "ОформлениеСтрок" возвращает 1 строку.
Если точку останова убрать и посмотреть как работает заполнение поля в списке документов, то все работает как задумано. Т.е. сколько строк отображается на форме, столько и будет содержаться в "ОформлениеСтрок" и обрабатываться будут все строки. Особенность работы метода, однако !
AdminЗапуск 1С из командной строки Windows server 2012#23 15.08.19 11:32
Вдруг кому пригодится, добавлю от себя пять копеек:

Чтобы батник не ругался на кодировку и вместо русских букв не было кракозябр пишите листинги батников в 1С.
Открываете текстовый документ в 1С и пишите команды. Сохраняете как CMD и запускаете, должно работать.
НовостиФирма «1С» представила конфигурацию для управления ресурсами в космосе#44 08.04.19 7:37
Я понял, это новый российский сериал "Кладовщики в космосе".
Остросюжетные моменты уже были озвучены предыдущими ораторами.
ПубликацииИспользование программных перечислений, ч.1: строковые константы#36 22.03.18 8:26
Возможно, я чего-то не понял, но мне кажется в коде примера использования ошибка.

Строка "ВидОпределенияКонтрагента = ВидыОпределенияКонтрагента().Контрагент;" не корректна, т.к. структура СтруктураВидыОпределенияКонтрагента не содержит свойства "Контрагент", зато содержит "Документ".

И чтобы сработало вот это:

Если СвойстваИсточника().ВидОпределенияКонтрагента = ВидыОпределенияКонтрагента().Документ Тогда
Контрагент = мИсточник.Контрагент;

наверное, нужно было написать так:

Если ТипЗнч(мИсточник) = Тип("ДокументОбъект.РеализацияТоваровУслуг") Тогда
ВидОпределенияКонтрагента = ВидыОпределенияКонтрагента().Документ;

Сори, если туплю...
Но может кому сбережет нервы при копипасте примера :)
DevХранение настроек внешних отчетов на СКД в 1С#56 07.02.18 15:42
(50)

Ты уже наверняка разобрался, но для кого-то может оказаться полезным:

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

Для восстановления настроек надо чтобы они сохранились.
У автора ошибочка в процедуре ПриЗакрытии(), забыл или не посчитал нужным указать строку:

Если мТекущаяНастройка <> Неопределено И мТекущаяНастройка.НаименованиеНастройки <> Неопределено
И мТекущаяНастройка.Свойство("СохранятьАвтоматически") И мТекущаяНастройка.СохранятьАвтоматически Тогда

мТекущаяНастройка.Вставить("СохраненнаяНастройка", Новый ХранилищеЗначения(КомпоновщикНастроек.ПолучитьНастройки())); //потому, что значения настроек схемы СКД могли поменяться, а в настройке значения полученные при открытии формы

...

Где должна располагаться эта строка уже показали в комменте 33.

Может это все к твоему случаю и не относилось, но пусть будет тут ;)
DevХранение настроек внешних отчетов на СКД в 1С#55 07.02.18 15:29
При написании обработки обмена добавил форму для установки/сохранения параметров обмена и разместил на форме поля ввода.

В обработчике "ПриИзменении" этих полей навесил процедуру "ЗначениеНастройкиОбменаПриИзменении":

Код
Процедура ЗначениеНастройкиОбменаПриИзменении(Элемент)
   ТиповыеОтчеты.УстановитьПараметр(КомпоновщикНастроек, Элемент.Имя, ЭлементыФормы[Элемент.Имя].Значение);
КонецПроцедуры


При закрытии формы, с учетом добавленной строки, как указано выше в 33 комменте...

Код
мТекущаяНастройка.Вставить("СохраненнаяНастройка", Новый ХранилищеЗначения(КомпоновщикНастроек.ПолучитьНастройки()));


...измененные значения параметров сохраняются в регистре и восстанавливаются при открытии формы:

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

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

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


Можно использовать типовую функцию:

Код
ТиповыеОтчеты.ПолучитьПараметр(КомпоновщикНастроекКоллекцияЗначений, ИмяПараметра)
ОбменПростой POST-запрос.#18 23.05.17 15:45
Поделюсь из своего личного опыта.
Вдруг кому пригодится.

Получал от сервера ошибку 400, типа, "Internal server error".
Причем, именно при запросе из 1С. Другими средствами запрос обрабатывался.

В результате оказалось вот в чем дело:

//Вызывало ошибку:
//Запрос.УстановитьТелоИзСтроки(ТекстPOSTЗапроса, КодировкаТекста.UTF8);

//Взлетело:
Запрос.УстановитьТелоИзСтроки(ТекстPOSTЗапроса, "CESU-8");

//"CESU-8" - Кодировка CESU-8 это и есть UTF-8 без BOM,
//приходится прописывать кодировку текстом, т.к. в текущей версии платформы
//или из за режима совместимости третий параметр метода УстановитьТелоИзСтроки(ТекстPOSTЗапроса,КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать) не доступен,
//а в КодировкаТекста отсутствует вид кодировки "CESU-8"
ОбменОбмен данными между "Торговля и склад" 9.2 (7.7) и Бухгалтерия 2.0 (8.2).#20 07.11.16 9:18
(19) zexpress,

Добрый день.

Видимо, ошибка в обработчике ПослеЗагрузкиОбъекта объектов типа РеализацияТоваровУслуг .
Посмотрите, как у вас заполнился в Бухгалтерии документ Реализация товаров и услуг 0000000171 от 06.07.2016 9:00:12
Чего ему не хватило ?

Я уже не помню как писал эти правила.
Видимо что-то перебирается в цикле или идет обращение по номеру/индексу к некоей таблице или списку/массиву.

Возможно у вас в ТиС что-то не заполнено в этом документе и список/массив/таблица оказался не заполнен, а при загрузке пытается читать из него значения.
Возникает ошибка...

Вообще, уже не занимаюсь этими правилами очень давно...
БУОшибка SDBL: Ожидается имя таблицы (pos=19)#99 09.06.16 12:40
Такая ситуация:

УПП, клиент-сервер, конфигурация переписана, текущий релиз платформы 8.3.4.482, режим совместимости 8.2.13
Корректно ли осуществлялся переход с платформы на платформу сейчас сказать уже не могу.
Как и не помню с какой платформы начала существование эта база.


База рабочая, в текущем режиме работа идет штатно.
Хочу убрать режим совместимости.

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

создал копию и все тесты делаю с копией... Чтоб ни у кого не возникло сомнения... :)
На режиме 8.2.13 выполнил реструктуризацию. Сохранился.
При смене режима совместимости на 8.2.16 программа выполнила сохранение, что-то там быстренько реструктуризовала, отчиталась об этом и запустилась нормально. Все ок.
Документы открываются, печатные формы формируются.
Однако, при попытке сформировать отчет "Валовая прибыль" возникла ошибка "Ошибка SDBL: Ожидается имя таблицы (pos=107)", на чем предлагает Завершить работу или Перезагрузиться.

Рекомендации выше хочу еще только попробовать выполнить на копии базы, но не все так просто.
База-то клиент-серверная, в файловую не вариант.
А как запустить сервер на 13-й платформе ? Даунгрейд ему делать, что ли ? :) Отдельный сервер запускать, удалять все версии платформы после 13-й или еще есть варианты ?

Сталкивался кто-нибудь с такой ошибкой ? Поделитесь опытом, пожалуйста.
Какие есть пути решения выполнить инструкцию для клиент-серверной базы ?
DevXDTO на службе у лентяев. Самый простой способ чтения xml#25 11.11.15 11:19
Для коллег-лентяев : :)

Код
Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   ДиалогОткрытияФайла  = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   Фильтр = НСтр("ru = 'XML'; en = 'XML'")   + "(*.xml)|*.xml";
   ДиалогОткрытияФайла.Фильтр = Фильтр;
   
   Если НЕ ДиалогОткрытияФайла.Выбрать() Тогда
      Возврат;
   Иначе
      
      МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;
      Для Каждого ИмяФайла Из МассивФайлов Цикл   
         
         Чтение=Новый ЧтениеXML;
         Чтение.ОткрытьФайл(ИмяФайла);   
         Фабрика=Новый ФабрикаXDTO;
         ОбXDTO=Фабрика.ПрочитатьXML(Чтение);
         
         //Сообщить("Адреса:"); 
         //Для Каждого Address из ОбXDTO.Address Цикл 
         //   Сообщить("Address.City: " + Address.City);
         //   Сообщить("Address.Name: " + Address.Name);
         //   Сообщить("Address.Street: " + Address.Street);
         //   Сообщить("Address.Country: " + Address.Country);
         //КонецЦикла;
         
         Сообщить("Адреса. Второй вариант:"); 
            Сообщить(" "); 
         Для Каждого Address из ОбXDTO.Address Цикл
            Для Каждого Свойство из Address.Свойства() Цикл
               Сообщить(Свойство.Имя + ": " + Address.Получить(Свойство));
            КонецЦикла;
            Сообщить(" "); 
         КонецЦикла;
         
         Сообщить("Элементы:"); 
            Сообщить(" "); 
         Для Каждого Item  из ОбXDTO.Items.Item Цикл
            Для Каждого Свойство из Item.Свойства() Цикл
               Сообщить(Свойство.Имя + ": " + Item.Получить(Свойство));
            КонецЦикла;
            //Сообщить("Item.Comment:" + );
            //Сообщить("Item.PartNumber:" + );
            //Сообщить("Item.ProductName:" + );
            //Сообщить("Item.Quantity:" + );
            //Сообщить("Item.USPrice:" + );         
         Сообщить(" "); 
         КонецЦикла;
      КонецЦикла;
   КонецЕсли;
КонецПроцедуры