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

Хранилище

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

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



История благодарностей участнику vbi ::: Спасибо сказали: 72 раз
Дата поста: В теме: За сообщение: Спасибо сказали:
13.06.22, 8:42 Прокрутка таблиці в мобільному додатку (клієнті)
1С:Підприємство 8.3 (8.3.16.1224). "Управление торговым предприятием для Украины", редакция 1.2. Писалася керована форма для підключення мобільного клієнта. Сам мобільний клієнт 14. На мобільному клієнті є таблична частина. Якщо записів в табличній частині дуже багато, таблична частина виходить за екран і по суті прокручується не сама таблична частина, а форма. При цьому програмне позиціонування ТекущейСтроки не спрацьовує:
Элементы.Товары.ТекущаяСтрока = КодСтроки;


І що не роби, які галочки не став - нічого не допомагає. таблична частина розтягується, прокрутка до поточної строки не працює. На форумах пишуть - теж рішення не знаходять.
В ході тестування знайшов єдине рішення, яке працює. Треба в ПриОткрытии форми дописати одну строчку кода:

Элементы.Товары.ВариантУправленияВысотой = ВариантУправленияВысотойТаблицы.ВСтрокахФормы;
Vofka,
27.05.22, 14:44 Архивація обєктів 1С
А ще така ідея - зробити виборку типів обєктів з журналу регістрації за останні кілька місяців - це будуть ті об'єкти якими користуються. Відповідно ті що не користуються - всі інші. тоді їх можна видалити, знайти всі посилання на них в коді і починати "здувати" базу smile.gif
Diana1c,
24.05.22, 7:52 Мобильный клиент - полноэкранный режим
vbi @ 05.05.22, 12:32 * ,
И тут я сам разобрался и добился успеха. Сначала я нашел сторонние приложения, которые могут глобально включать полноэкранный режим на андроиде на постоянной основе. Мобильный клиент в таком случае запускается в полноекранном режиме но тут почемуто действует (и я даже нашел документацию об этом) ограничение что не работает экранная клавиатура в таком режиме и не работает физическая клавиатура (если это ТСД с кнопками на андроиде).

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

Права принудительно даются через adb утилиту которая скачивается на компютер, андроид устройство подключается по USB в режиме отладки, а потом через консоль выполняется команда.

Итак скачиваем ADB. Если это Linux, то adb можно установить через Synaptic. Если Winodws то ищем Platform-tools (adb/fastboot). Я работал под Ubuntu потому опишу для него (как рабоать с ADB в Windows - можно найти в сети).

Далее подключаем Android приложение по USB к компютеру. В режиме подключения по USB будет писать "зарядка". Нужно переключить в режим передачи фотографий (Режим PTP).

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

Далее при подключенном устройстве в режиме отладки запускаем терминал (консоль) и вначале выполняем команду проверки найдет ли ADB наше устройство:

Цитата
adb devices

нашло устройство
Цитата
List of devices attached
21322523020535 device


Если пишет следующее:

Цитата
List of devices attached
21322523020535 no permissions (user in plugdev group; are your udev rules wrong?); see [http://developer.android.com/tools/device.html]


Значит Вы не перевели подключение в PTP режим.

Выполняем команду предоставления полноэкранного режима для мобильного клиента.

Имя приложения "com.e1c.mobile.client"

Команда следующая:

adb shell settings put global policy_control immersive.full=com.e1c.mobile.client


После этого если все сделано правильно - мобильный клиент (да и наверно любое другое приложение) будет запускатся в полноэкранном режиме.

P.S. immersive.full - это параметр полноэкранного режима когда прячется навигационная строка и строка статуса. Кроме full есть еще режими когда прячется только строка статуса или только навигация.
andr_andrey, Vofka,
23.05.22, 8:57 ТСД на Андроиде. Как в мобильном клиенте перехватывать внешнее обытие со встроенного сканера ШК
Разобрался сам, нашел компоненты. Вот ТУТ подробно описано.
Vofka,
19.05.22, 11:37 Внешние компоненты для ТСД на Android (Zebra)
Внешние компоненты для ТСД на Android. Работает на ТСД Zebra MC33

Компонента ZebraDW - для Зебровской програмулины DataWedge - создает и активирует нужный профиль на ТСД для того чтобы могла работать компонента перехвата событий и направлять в 1С.

Компонента Component - это компонента UniversalBroadcast, которая перехватывает широковещательные сообщения Android и направляет в 1С как внешние события.

Компоненты в архивах (под паролем разумеется) - их распаковываем, а те уже архивы (архивы в архиве) после распаковки, их НЕ распаковываем это и есть ВК.

Создаем новые общие макеты типа ВнешняяКомпонента и загружаем туда распакованные внутренние файлы.

Переходим к коду:

Использовать 32х битную мобильную платформу или моб. приложение (одна из компонент поддерживает только 32)
// Вначале обявляем переменные где будут хранится компоненты, иначе ничего не заработает

&НаКлиенте
Перем мКомпонентаНастройки Экспорт;
&НаКлиенте
Перем мКомпонентаОповещений Экспорт;

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    ПідключенняДрайвера();
КонецПроцедуры

&НаКлиенте
Процедура ПідключенняДрайвера()

    Если ПодключитьВнешнююКомпоненту("ОбщийМакет.ZebraDW", "DWSetup", ТипВнешнейКомпоненты.Native) Тогда        
        мКомпонентаНастройки = Новый ("AddIn.DWSetup.ZebraDW");
        мКомпонентаНастройки.УстановитьПараметр("ProfileName", "1C");
        мКомпонентаНастройки.УстановитьПараметр("EventName", "barcode_event");
    
        Если НЕ мКомпонентаНастройки.Подключить() Тогда
            ТекстОшибкиКомпоненты = "";
            КодОшибки = мКомпонентаНастройки.ПолучитьОшибку(ТекстОшибкиКомпоненты);
            СообщениеПользователю = Новый СообщениеПользователю();
            СообщениеПользователю.Текст = "Ошибка: "+ КодОшибки + ", " + ТекстОшибкиКомпоненты;
            СообщениеПользователю.Сообщить();
        КонецЕсли;
    Иначе
        СообщениеПользователю = Новый СообщениеПользователю();
        СообщениеПользователю.Текст = "Ошибка подключения компоненты ""ZebraDW""";
        СообщениеПользователю.Сообщить();
    КонецЕсли;

    Если ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда              
        мКомпонентаОповещений = Новый ("AddIn.Broadcasts.UniversalBroadcast");        
        мКомпонентаОповещений.УстановитьПараметр("FilterName", "barcode_event");
        //мКомпонентаНастройки.УстановитьПараметр("Category", "android.intent.category.DEFAULT"); //// це не треба
                
        ШаблонДанных = мКомпонентаОповещений.ПолучитьШаблонОписанияДанных();
        ТипДанные = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных, "com.symbol.datawedge.data_string", XMLСтрока(Ложь), XMLСтрока(0));          
        
        мКомпонентаОповещений.УстановитьПараметр("CaptureData", ТипДанные);
        
        Если НЕ мКомпонентаОповещений.Подключить() Тогда
            ТекстОшибкиКомпоненты = "";
            КодОшибки = мКомпонентаОповещений.ПолучитьОшибку(ТекстОшибкиКомпоненты);
            СообщениеПользователю = Новый СообщениеПользователю();
            СообщениеПользователю.Текст = "Ошибка: "+ КодОшибки + ", " + ТекстОшибкиКомпоненты;
            СообщениеПользователю.Сообщить();
        КонецЕсли;        
    Иначе        
        СообщениеПользователю = Новый СообщениеПользователю();
        СообщениеПользователю.Текст = "Ошибка подключения компоненты ""UniversalBroadcast""";
        СообщениеПользователю.Сообщить();        
    КонецЕсли;    

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

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
    //Сообщить("+" + Источник + " - "+ Событие + " - " + Данные); ///// Далее можно просто раскоментировать и видеть XML который пришел
    
    Если Событие = "UniversalBroadcastEvent"  Тогда
        ОбробкаВводуШтрихкода(Данные);
    КонецЕсли;    
        
КонецПроцедуры

&НаКлиенте
Процедура ОбробкаВводуШтрихкода(Данные)
        ЧтениеXML = Новый ЧтениеXML();
        ЧтениеXML.УстановитьСтроку(Данные);
                
        Пока ЧтениеXML.Прочитать() Цикл  //Цикл по структуре            
            Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "MessageData" Тогда
                ЧтениеXML.Прочитать(); // Поч. елемента
                ЧтениеXML.Прочитать();//Знач
                Если  ЧтениеXML.Значение = "barcode_event" Тогда
                    ЧтениеXML.Прочитать();// Кін. елемента
                    ЧтениеXML.Прочитать();// Поч. елемента
                        Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "FilterData" Тогда  //Определяем начало элемента
                            ЧтениеXML.Прочитать();
                            Если ЧтениеXML.ТипУзла=ТипУзлаXML.Текст Тогда
                                Сообщить(СокрЛП(ЧтениеXML.Значение));   //// Тут наш штрихкод
                                Возврат;
                            КонецЕсли;
                        КонецЕсли;
                КонецЕсли;

            КонецЕсли;
        КонецЦикла;

КонецПроцедуры
Vofka,
29.04.22, 14:18 Война с Россией
caballero @ 26.04.22, 17:02 * ,
Взагалі ломана 1С - це як трофейний танк. Віджатий в окупанта значить трофейний. Потім наші ж ЗСУ їздять на трофейних танках, правда? Їздять на російському. Так само і 1С. Ставим трофейні 1С. Трофейні (ламані) значить вже не російські, а українські!
awp, Inkognito, lals,
08.03.22, 17:53 Конфигурация для гуманитарных хабов
Простая конфигурация для гуманитарных хабов. Только приход расход по количеству и остатки. Писалась на 8.3.13.

Поставили для гуманитарного хаба БАС, им не когда разбиратся. Им только приход расход и только количество и видеть остатки. Видеть что куда отправили, что осталось. Написал простенькую конфигурацию приход расход и все. Только количество без денег. Отчеты, печ формы, ТТН (хотя для ручного заполлнения в основном).
Может еще где нужно вести учет распространите пожалуйста, а кто имеет желание дописать улучшить - тоже приветствуется. Главное простота и удобство пользователю без лишних настроек.

Скачати конфігурацію ГумДопомога

pony95, popenko, Vofka,
26.05.21, 15:54 З мобільного додатка відправити щось у Viber
logist @ Сегодня, 15:37 * ,
Спасибо, разобрался сам, только что проверил - работает:

&НаКлиенте
Процедура ТЕСТ(Команда)
    
    НовВз=Новый ЗапускПриложенияМобильногоУстройства();
    //Отправить текст по вайберу, предлагает выбрать, кому отправлять, потом сразу отправляет
    НовВз.Действие = "android.intent.action.SEND";
    НовВз.Приложение = "com.viber.voip";
    НовВз.ИмяКласса = "com.viber.voip.WelcomeShareActivity";
    НовВз.Тип = "text/plain";
    НовВз.ДополнительныеДанные.Добавить("android.intent.extra.TEXT","ТЕКСТ: Теекст-текст-текст");
    
    НовВз.Запустить(Истина);
    //НовВз.ДополнительныеДанныеЦикл

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


vbi @ Сегодня, 15:52 * ,
Так же можно отправлять конкретному человеку напрямую, отправлять фото и т. д.

//Открывает вайбер 
НовВз.Действие = "com.viber.voip.action.CONVERSATION";
//или
НовВз.Действие = "com.viber.voip.action.MESSAGES";


//Открывает список контактов в вайбере
НовВз.Действие = "android.intent.action.CALL_BUTTON";


//открывает диалог с конкретным человеком в вайбере
НовВз.Действие = "android.intent.action.SENDTO";
НовВз.Данные = "smsto:+380965336452";
НовВз.Приложение = "com.viber.voip";
НовВз.ИмяКласса = "com.viber.voip.SystemDialogActivityPublic";
//Отправить текст по вайберу, предлагает выбрать, кому отправлять, потом сразу отправляет
НовВз.Действие = "android.intent.action.SEND";
НовВз.Приложение = "com.viber.voip";
НовВз.ИмяКласса = "com.viber.voip.WelcomeShareActivity";
НовВз.Тип = "text/plain";
НовВз.ДополнительныеДанные.Добавить("android.intent.extra.TEXT","ТЕКСТ: Теекст-текст-текст");


//Отправить фото по вайберу, предлагает выбрать, кому отправлять
НовВз.Действие = "android.intent.action.SEND";
НовВз.Приложение = "com.viber.voip";
НовВз.ИмяКласса = "com.viber.voip.WelcomeShareActivity";
НовВз.Тип = "image/jpeg";
НовВз.ДополнительныеДанные.Добавить("android.intent.extra.STREAM","file:///storage/emulated/0/DCIM/100ANDRO/DSC_0001.jpg","Uri");
//Открыть контакт в вайбере
НовВз.Действие = "android.intent.action.VIEW";
НовВз.Данные = "tel:+380965336452";
НовВз.Приложение = "com.viber.voip";
НовВз.ИмяКласса = "com.viber.voip.WelcomeShareActivity";


Пример нашел на инфостарте.
Alegzander, logist, Vofka,
24.04.20, 16:41 Управляемая форма. Ввод на основании
sava1 @ Сегодня, 16:02 * ,
Я ошибся сказав про структуру подчиненности. Я имел ввиду ввод на основании.

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

А лучше проставить вообще у всех документов.

оффтоп (не только лишь все, мало кто может это делать - вспомнилась известная фраза.. где я ее слышал...)
MATEVI, sa111ko, wbazil,
18.02.19, 11:28 Перенес с x86 на x64 платформу и начало страшно тормозить
Цитата
"переустановил все"
Это удалил и заново развернул средствами ОС? Тогда добро пожаловать в мир блокировок.
Или ОС тоже была переустановлена? И все с нуля? Тогда нужно изначально смотреть настройки ОС так как мелкомягкие в 2012 добавили много интересного ...


Все - Это бекап базы средствами SQL. Новый SQL, новая платформа и восстановление базы из бекапа SQL

Друзья, удалось решить проблему страшного зависания путем переиндексации средствами 1С. Из конфигуратора - Тестирование и исправление - и только одна галочка "Переиндексация" - за ночь на этой громадной базе выполнилась.
Блокировки я пытался перевести на управляемые - вроде все по правилам сделал, код везде дописал, но было еще хуже - и взаимоблокировки. Видимо не везде дописал блокировки. Много стандартных и дописаных механизмов.
andr_andrey, Vofka,
04.06.18, 19:55 Получить программно документы по отбору в форме списка документа
Четкого ответа на тему нет, вот рабочий вариант. Может кому пригодится:
     Источник =  Новый ОписаниеИсточникаДанных(ДокументСписок);    
      Построитель = Новый ПостроительЗапроса;
      Построитель.ИсточникДанных = Источник;
      Построитель.Выполнить();
      ТЗ = Построитель.Результат.Выгрузить();
И делов то) Чтоб в следующий раз в поиске в Гугл найти ответ в этой теме.
Vofka,
16.11.17, 14:32 Інтеграційна стиковка для 1С 7.7 та M.E.Doc
Вот, случайно наткнулся. Может еще пригодится.
SpecAgent, ulisses,
10.01.14, 9:26 HTTPСоединение.Получить() - Пустой ответ сервера
Разобрались сами. Проблема была в том, что был настроен редирект всех страниц 302 на другую одну страницу php.
Тема закрыта
ignsv, Vofka,
12.11.13, 12:20 HTTPСоединение.Получить() возвращает XML с кракозябрами
Вообщем выяснил, текст приходит в cp1251, на виндовсе все в кодировке cp1250. Если текст который пришол отобразить как cp1250 - отображается нормально.
Например вот фрагмент: "Íŕčěĺíîâŕíčĺ"
Здесь можно проверить.

Получается нужно написать конвертер cp1251 -> cp1250. Нигде не могу найти описание как это сделать.
mister-x,
18.02.13, 10:43 Вывод таблицы значений в красивый отчет с расшифровками
Если кому нужно таблицу значений представить как красивый отчет с расшифровками, передаете в функцию ТЗ - она возвращает Табличный документ. Функция работает на сервере, потому ее можно использовать и на клиент-серверном варианте.

Домустим у Вас есть ТЗ с колонками "РеализацияТоваровУслуг" и СуммаДокумента.

Функция вернет вот такой табличный документ:



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

[attachment=681:TZ_to_Report.zip]
Alex_Alex, bohdan-k, galamm, igvlagor, iswat, mment11, nika, sava1, siancom, Vofka,
15.02.13, 14:44 Отчет из таблицы значений с помощью построителя
Вообщем кому нужно будет ТЗ в красивый отчетик вывести - вот простой работающий пример smile.gif
Meest,
15.02.13, 12:08 Отчет из таблицы значений с помощью построителя
Разобрался, вот так работает:
    Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(ТЗ);       
    Построитель.ИсточникДанных.Колонки[1].Измерение=Истина;     // Регистратор    
    Построитель.ИсточникДанных.Колонки[0].Итог="СУММА(Сумма)";  // Сумма
    Построитель.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.ЗначенияГруппировок; /// Тут ЗначенияГруппировок а не Расшифровка :)  
    Построитель.ЗаполнитьНастройки();
Vofka,
04.04.12, 10:02 Как запустить предприятие 8.2 из командной строки, указав путь к базе?
Собственно такая проблема у меня появилась. Нужно пользователям в настройке запуска Windows прописать запуск 1С предприятия, указав под какой базой войти в предприятие.
Вроде не вопрос:
Цитата
"C:\Program Files\1cv82\8.2.14.528\bin\1cv8.exe" enterprise /S server_name\base_name

Но вот не хотелось указывать конкретно релиз программы в командной строке. А если установить новый релиз? Перепрописывать всем пользователям путь?

Цитата
"C:\Program Files\1cv82\common\1cestart.exe" enterprise /S server_name\base_name
- вроде запускает нужную базу, но открывает ее под управляемым интерфейсом (открывается пустое окно управляемого интерфейса), даже если я явно передаю параметр запуска в обычном интерфейсе.

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

1. В папке "C:\Program Files\1cv82\" создаем bat-файл с иминем "start1c.bat" и следующим содержимым:
Цитата
@echo off
for /f "delims=" %%* in ('dir/O:-N 8.2* /B /S 2^>nul') do (
start %%*\bin\1cv8.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
exit /B
)


2. В поле запуска приложения при входе пользователя прописываем команду
Цитата
C:\Progra~1\1cv82\start1c enterprise /S server_name\base_name

3. В поле рабочего каталога обязательно указываем
Цитата
C:\Progra~1\1cv82\


И все работает.

Что делает батник? Он получает список папок в рабочем каталоге с полным путем, которые начинаются на "8.2" и отсортированы по убыванию. Таким образом нужный каталог будет находится первым в списке. По списку запускается перебор, и первому же (нужному) пути каталога приклеивается "\bin\1cv8.exe", потом приклеиваются параметры и запускается 1С. Так как для запуска 1С используется команда "start", батник не ожидает окончания работы 1С и завершается. 1С же продолжает работу. Таким образом мы запускаем 1С один раз именно самой последней версии указав конкретную базу и режим предприятия. smile.gif

P. S. Если у Вас 64-битная система и 1С установлена в "C:\Program Files (x86)\1cv82", то вместо "C:\Progra~1\" нужно писать "C:\Progra~2\"
Vofka,
10.03.12, 18:04 При формировании "тяжелого" отчета 1С вылетает
Предисловие smile.gif

1. Есть компьютер А и компьютер Б, соеденены сетью;
2. На обоих компьютерах установлена 1С 8.2;
3. Есть база УТП, которая лежит на компьютере А, которая розшарена для компьютера Б.

Описание проблемы (развязка):

Если на компьютере А запустить 1С (под любым пользователем войти в базу, указанную в пункте 3) и попытатся сформировать оборотку - 1С вылетает с ошибкой виндовс: "... приложение будет закрыто ..." (точное сообщение не скажу, это все обяснял друг а я ему советовал что сделать).

На компьютере Б прописан путь к базе (3), и если там запустить 1С, войти в базу по локалке, сформировать оборотку - все работает прекрасно.

Как лечили (обьяснял другу что сделать):

1. Проверка базы (все галочки кроме проверки ссылочной целосности): Нашло кучу ошибок, исправило, но эта проблема осталась.
2. Удаляли личные данные пользователей 1С: без толку
3. Переустанавливали 1С: без толку
4. Друг даже переустановил Windows: без толку (Windows XP, 2Gb RAM, 2.хз Ггерц процессор)
5. Копировали базу в другое место: без толку
6. Копировали базу на компьютер Б: На Б локально нормально работает, а если запускать с А по сетке - вылетает.

Очевидно проблема наверно в самом компьютере (либо дрова плохие, хотя ставились с родного диска, либо что-то с железом). Все что знаю, написал, больше буду знать только в понедельник.

Может есть идеи? Что еще можно попробовать? Может винда кривая? Может проверить виртуальную память? Помогите добрым словом smile.gif
sash-88,
21.02.12, 16:24 Программное заполнение Платежки и ПКО заказами по ФИФО/ЛИФО
В стандартной конфигурации УТП для Украины, в таких документах, как "Платежное поручение входящее" и "Приходный кассовый ордер" есть пункт меню "Заполнить" табличной части "Расшифровка платежа". Этот пункт запускает стандартную обработку, открывает ее форму, а она в свою очередь подбирает неоплаченные заказы.

Иногда бывает необходимо в цикле программно заполнить платежные документы сделками по ФИФО или ЛИФО. Многие пишут все вручную, либо пытаются вытащить алгоритм из той обработки заполнения, мотивируя "там же диалоговое окно открывается, как ее использовать программно?"

На самом деле все просто. Вот код заполнения неоплаченными сделками в цикле по ФИФО Платежных поручений входящих и Приходных кассовых ордеров. Может кому пригодится:

Платежное поручение входящее:
 Для Каждого Платежка Из ТаблицаПлатежек Цикл
             ОбрОб=Обработки.ПодборПараметровРасшифровкиПлатежа.Создать();

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


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

             Для Каждого Строка Из ДокОб.РасшифровкаПлатежа Цикл
                 ДокОб.ОпределитьСчетаУчетаРасчетовСКонтрагентом(Строка);
                 УправлениеДенежнымиСредствами.ПересчитатьСуммуНДС(Строка);    
             КонецЦикла;
            
             Попытка
                 ДокОб.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
             Исключение
                 Сообщить(ОписаниеОшибки());
             КонецПопытки;
КонецЦикла;
Irina_, nmf, Oksi_K, Vofka,
20.01.12, 17:56 Улыбнуло
Случай вчера был с моей женой (она со мной на одной фирме работает, только бухгалтером). Вечером решила померить температуру, придремала. Когда я забирал у нее градусник, спросоня выдала фразу "Я ж еще только по одной организации температуру померяла..." biggrin.gif
5_kopeek, Ardi, MATEVI, Pepe, Zaval,
17.01.12, 17:15 Конфигурация "Конвертация данных"
Мы при переносе делали так:
в 7.7 создавали служебный документ остатков с кнопочкой заполнить. При нажатии на Заполнить табличная часть заполняется актуальными остатками.
в 8 создавали аналогичный документ с кнопкой "Распаковать"

Настраили конвертацию так чтобы эти документы выгружались из 7.7 в 8 (вместе с переносом справочников настройка конвертации занимает 15 мин.)

Далее заполнили служебный документ в 7.7, выыгрузили через обработку конвертации в XML, загрузили через другую обработку в 8.

Нажали в 8 в служебніх документах кнопку "Распаковать" - при этом создаются документы с остатками (оприходования или др.)
Такой метод не вынуждает долго ковырятся в конвертации а позволяет быстро настроить перекидку.
Кроме того такую процедуру перекидки можно выполнять несколько раз в день, если клиент захотел чтото у себя в 7.7 поменять задним числом.
alex040269, Егор Динин,
17.01.12, 16:20 Как программно ввести налоговую на основании реализации?
Вроде ничего сложного :
Док = Обработки.ФормированиеНалоговыхНакладных.СоздатьДокумент();
Док.Заполнить(РеализацияСсылка);


Но на втором этапе из модуля объекта налоговой вызывается открытие формы. А потом если попытатся записать - то записывается пустой документ, хотя в форме все заполнено.

Как программно заполнить налоговую на основании реализации, так чтобы не открывалась форма налоговой?
Fabri,
18.11.11, 10:59 Как установить интервал отображения в форме списка документа?
Разобрался сам 63000000.gif !
Так не работает:
Элементы.Список.Период = СтруктураПараметров.Период;

а так работает:
ЗаполнитьЗначенияСвойств(Элементы.Список.Период,СтруктураПараметров.Период);

Ну или так:
    Элементы.Список.Период.Вариант = СтруктураПараметров.Период.Вариант;
        Элементы.Список.Период.ДатаНачала = СтруктураПараметров.Период.ДатаНачала;
        Элементы.Список.Период.ДатаОкончания = СтруктураПараметров.Период.ДатаОкончания;

Оказывается, что когда мы присваиваем период, он есть ссылкой на объект в памяти, и потому заменяется другим объектом, мы просто заменяем объект периода на другой, вместо того, чтоб устанавливать его атрибуты smile.gif
Отсюда правило: никогда не писать "Период = " даже в сравнении, т. к. сравниватся будут ссылки на объекты а не их значения. Тут уже начинают работать правила ООП smile.gif))
Vofka,
04.11.11, 13:00 1С Документооборот 8
Цитата(logist @ 04.11.11, 12:03) *
1С:Архив это не конфигурация 1С, а отдельный программный продукт. И "Конвертация данных" тут никак не поможет.


Честно говоря не знал...
Гдето видел, что на августовском ИТС 2007 года есть статья "Интеграция 1С : Архива 2.5 и 1 С : Предприятия 8.0"

Есть так же внешняя компонента для работы с 1С:Архивом. Вот еще код, может поможет:

Попытка
    ЗагрузитьВнешнююКомпоненту("ArcDocAddIn.dll");    
Исключение
    Сообщить("Не удаётся загрузить внешнюю компоненту 1С:Архива", СтатусСообщения.Важное);
    Сообщить("  " + ОписаниеОшибки());
    Возврат;
КонецПопытки;
    
Попытка
    ТестовыйAPI = Новый("AddIn.AddInExtension");    
Исключение
    Сообщить("Не удаётся подключиться к API 1С:Архива", СтатусСообщения.Важное);
    Сообщить("  " + ОписаниеОшибки());
    Возврат;
КонецПопытки;    


API = Новый("AddIn.AddInExtension");
ОтветАрхива = API.OpenDocument(UID);
Сообщить(ОтветАрхива);


Я думаю вместе с дистрибутивом программы должна быть документация по API 1С:Архива. Используя его и компоненту можно перетащить документы в конфигурацию.

Или вытащите данные в "1С Документооборот ПРОФ" а потом из нее Конвертацией данных
ip82,

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